Я столкнулся с этим вопросом на сайте кодирования. Здесь мы должны проверить, можно ли переставить сетку, чтобы сформировать палиндром как по строкам, так и по столбцам.
Мой подход заключался в проверке сначала всех строк, а затем столбцов. Если какой-либо из них не может стать палиндромом, выведите NO else, выведите YES.
Но моя программа проходит только 15 тестов из 50.
Ниже приведен код, который я использовал:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int testCases = scanner.nextInt();
for(int i=0; i<testCases; i++)
{
int n = scanner.nextInt();
int m = scanner.nextInt();
scanner.nextLine();
boolean printYes = true;
String[] input = new String[n];
for(int k=0; k<n; k++)
{
input[k] = scanner.nextLine();
boolean check = canFormPalindrome(input[k]);
if (!check)
{
printYes= false;
}
}
if (printYes)
{
for(int k=0; k<m; k++)
{
String s = "";
for(int l=0; l<n; l++)
{
s=s+input[l].charAt(k);
}
boolean check = canFormPalindrome(s);
if (!check)
{
System.out.println("NO");
printYes = false;
break;
}
}
if (printYes)
{
System.out.println("YES");
}
}
else
{
System.out.println("NO");
}
}
scanner.close();
}
static boolean canFormPalindrome(String str) {
int count[] = new int[256];
Arrays.fill(count, 0);
for (int i = 0; i < str.length(); i++)
count[(int)(str.charAt(i))]++;
int odd = 0;
for (int i = 0; i < 256; i++)
{
if ((count[i] & 1) == 1)
odd++;
if (odd > 1)
return false;
}
return true;
}
Когда вы вводите код, вам нужно задать более конкретный вопрос (например, почему этот оператор for не запускается). Иногда, когда ваш вопрос не ясен, вы можете получить отрицательные голоса. На мой взгляд, это немного строго, и у меня была такая же проблема. когда я начинаю задавать вопросы здесь. Тем не менее, это сообщество, и вы должны идти на компромисс. Также см. stackoverflow.com/help/how-to-ask для получения дополнительной помощи!




Мальчик, ты не должен делиться проблемами, которые живут на сайте соревнований. Эта проблема находится на сайте hackerearth.com для технического задания kelton.
Могу ли я узнать, почему этот вопрос получил отрицательный рейтинг?