Strings and Text Processing. Problem 11. Palindromes
Някой може ли да ми каже къде бъркам. В Judga ми дава 40/100 обаче нулевите тестове не тръгват. Ето го кодът http://pastebin.com/Y7qN8qRt
Някой може ли да ми каже къде бъркам. В Judga ми дава 40/100 обаче нулевите тестове не тръгват. Ето го кодът http://pastebin.com/Y7qN8qRt
Здравей. Провери, първо, какво ти инстанциира тази част от кода - charArray.ToString(). Когато дебъгнеш с първия пример, нито една инстанция не влиза.
Като цяло, трябва да разделиш всяка дума в string[] input на две части. Имай предвид, че стрингът може да е с дължина:
четно число;
нечетно число;
и една буква само.
Благодаря! Разделих input данните на две части и тръгна :)
Аз ги разделям, обаче ми дава грешка на предпосления тест....
http://pastebin.com/1xsLJJ1M
Не съм много сигурен къде точно може да бъде проблема...
Идеи?
Според мен няма нужда нито да позваш методи от 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;
}
Мисля, че и двата начина работя горе - долу по един и същи начин, но изглежда, че проблема не е в това ами при самото сортиране, понеже ми дава грешка пак на същия тест.
Добавяй палиндромите в един SortedSet и той сам си ги сортира.
Да, справих се с това. Мислех си, че проблема идва от начина, по който ги търся, а то се оказа в сортирането. :)
murkata86, пробвай да използваш HashSet вместо List за да избегнеш повторенията.