YavorSpassov+deleted!
133 Точки
msmilkoff
338 Точки
"a" е палиндром, защото (колкото и странно да изглежда) се пише по един и същи начин отляво-надясно и обратно.
Няма нужда от .DIstinct() и от Array.Sort().
Може вместо List да ползваш SortedSet, (който ти пази само уникални, сортирани елементи) и този прост O(n) алгоритъм за намирането на палиндроми:
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;
}
Още съм в Programming Basics и не съм чувал за SortedSet. :)
Щом чаткаш List, значи чаткаш и SortedSet - представи си го като List, в който не можеш да вкараш два едни и същи елемента и освен това ти ги пази в нарастващ ред, т.е., ако се опиташ да му вкараш поредицата 5,3,5,6,7,7,9,1, в SortedSet-а ще получиш:
1, 3, 5, 6, 7, 9
Ясно. По-трудно е да се сетиш за него, когато ти потрябва, отколкото да го разбереш.
Харесах си го твоя метод и реших една от следващите задачи с него - 10. Palindrome Index.
Решението с метода