2013-12-26 5 views
-3

С учетом строки aaaabaabaaaa (s, которая будет общей), сколько возможных палиндромов размером> 2 (n для общего) может быть сгенерировано из этой строки?Напишите функцию для подсчета количества подстрок Palindrome в заданной строке?

Мне нужно знать, как подсчитать количество палиндромов и распечатать их.

Например. для надстрочной ааа, аааа, абы, абы, ааа, аааа, абаабы, аааабаааааа.

-Question спросил SAP (нанимая для Java) интервью

+1

Почему «aabb» является палиндром? – timrau

+1

CS диплом сделан легко .. –

+0

Я дам вам ответ, вы можете сделать это в O (n), сложная часть вычисляет алгоритм. Удачи! – OmnipotentEntity

ответ

0
public void palindrome(String string) 
{ 
    char[] charArray = string.toCharArray(); 

    count = 0; 
    i = 0; 
    while(i < charArray.lenght) 
    { 
     if(charArray[i] == charArray[charArray.lenght - i - 1]) 
     { 
     } 
     else 
     { 
      System.out.println("not a palindrome"); 
      break; 
     } 
    } 
} 

это основная логика, чтобы проверить, если это палиндром.

если длина строки даже тогда «» также является палиндром, или если это нечетно, средний символ также является палиндром. Поэтому, если ((string.length()% 2) == 0), то он четный, или же он нечетный.

Я позволю вам понять остальное.

+0

Удалите вас, возможно, захотите взять исходное жало и сделать charArray, а затем перестроить строку по одному символу за раз. Вы можете вызвать метод выше с каждой итерацией цикла, и вам нужно будет добавить оператор return к вышеописанному методу. – drhunn

Смежные вопросы