Аз съм направил един метод , който проверява още в началото дали стринга е палиндром. Ако не е взима стринга запчва от 1 буква, като премахва всяка една буква и пробва дали е палиндром. Ако намеря палиндром брейквам, ако не връщам буквата и продължавам до края на стринга.
Здравейте колеги,
бихте ли ми казали къде бъркам, защото джъдж ми дава 70 точки - http://pastebin.com/t3MbY1pu
IndexOf ти връща индекса на първия срещнат елемент (като се почне от началото на масива). Ако някоя буква ти се повтаря повече от един път, то програмата няма да премахне нея, а първата която срещне.
Пробвай да го направиш с for(int i = 0, i < word.Length; i++), който да обхожда всички индекси, а после да използваш Remove(i, 1).
Също така, за да провериш дали думата е палиндром, може да използваш метод от сорта на:
static bool IsPalindrome(string word)
{
for (int i = 0; i < word.Length/2; i++)
{
if (word[i] != word[word.Length - 1 - i]) return false;
}
return true;
}
Така не се налага да създаваш толкова много стрингове и да ги сравняваш всеки път.
Успех със задачата!
Пробвах решението, но сигурно бъркам типовете някъде и затова не работи http://pastebin.com/mqW426zt.
http://pastebin.com/fZRRfvy8 - това е решението ми :)
Извинявай, че не отговарям по-подробно, но е малко късно и мисля да лягам. Ако има нещо неясно, пиши и утре ще се постарая да отговоря.
Успех!