radhikay Ответов: 2

Я пытаюсь проверить, является ли данная строка палиндромом или нет. Я получаю ошибки .


Я получаю следующую ошибку,
prog.java:10: error: cannot find symbol
System.out.System.out.println("No string");


Что я уже пробовал:

Я пытаюсь использовать для этого следующий код,
class GFG {
	public static void main (String[] args) {
		String str= "gadag"; 
		if(str==null)
		{
		    System.out.System.out.println("No string");
		}
	   StringBuilder strBuilder = new StringBuilder(str);
		 strBuilder.reverse();
	     Boolean status = strBuilder.equals(str);
		 System.out.println(status);
		 
		}
	}

2 Ответов

Рейтинг:
9

OriginalGriff

Зачем переворачивать строку? Это нормально для маленьких струн, но серьезная трата времени и памяти для больших.
Вместо этого рассмотрим следующее: строку можно рассматривать как массив символов, поэтому вы можете использовать charAt(индекс) для возврата одного символа.
Если вы пройдете через половину того количества символов, которое есть в строке, то вы можете сравнить первый с последним, второй с предпоследним ... до самого центра. Если вы найдете хоть одно различие, то это не палиндром.
Таким образом, вы используете меньше памяти, меньше процессора, и это, как правило, гораздо лучшая идея ... для реальной эффективности используйте два индекса: один на первом символе, один на последнем, и перемещайте один вверх и один вниз каждый раз вокруг цикла.


Рейтинг:
15

Patrice T

Лишь идея:

System.out.System.out.println("No string");

Вы читали код, чтобы попытаться понять, что не так в этом коде ? или просто проще спросить нас ?
Вы должны быть в состоянии найти такую ошибку самостоятельно.