Професионална програма
Loading...
Alexander7337 avatar Alexander7337 15 Точки

Здравей. Провери, първо, какво ти инстанциира тази част от кода - charArray.ToString(). Когато дебъгнеш с първия пример, нито една инстанция не влиза.

Като цяло, трябва да разделиш всяка дума в string[] input на две части. Имай предвид, че стрингът може да е с дължина:

четно число;

нечетно число;

и една буква само.

1
Yulaw avatar Yulaw 7 Точки

Благодаря! Разделих input данните на две части и тръгна :)

0
murkata86 avatar murkata86 10 Точки

Аз ги разделям, обаче ми дава грешка на предпосления тест....

http://pastebin.com/1xsLJJ1M

Не съм много сигурен къде точно може да бъде проблема...

Идеи?

0
msmilkoff avatar msmilkoff 338 Точки

Според мен няма нужда нито да позваш методи от Linq, нито да разделяш думата на две. Просто в един while сравняваш първия символ с последния, после втория с предпоследния и така докато не се засекат. Не се налага и никаква проверка за четност.

 private static bool IsPalindrome(string word)
{
    int rightIndex = word.Length - 1;
    int leftIndex = 0;

    while (rightIndex >= leftIndex)
    {
        if (word[rightIndex] != word[leftIndex])
        {
            return false;
        }

        rightIndex--;
        leftIndex++;
    }

    return true;
}

1
murkata86 avatar murkata86 10 Точки

Мисля, че и двата начина работя горе - долу по един и същи начин, но изглежда, че проблема не е в това ами при самото сортиране, понеже ми дава грешка пак на същия тест.

0
Yulaw avatar Yulaw 7 Точки

Добавяй палиндромите в един SortedSet и той сам си ги сортира.

0
murkata86 avatar murkata86 10 Точки

Да, справих се с това. Мислех си, че проблема идва от начина, по който ги търся, а то се оказа в сортирането. :)

0
DragomirProychev avatar DragomirProychev 7 Точки

murkata86, пробвай да използваш HashSet вместо List за да избегнеш повторенията.

0
15/06/2017 12:16:51