gpt4 book ai didi

java - 减少字母的值,例如可以将 'd' 更改为 'c' ,但不能将 'c' 更改为 'd' 。为了形成回文

转载 作者:太空宇宙 更新时间:2023-11-04 06:32:20 26 4
gpt4 key购买 nike

public class Solution {

public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int tc = Integer.parseInt(br.readLine());//I get Numberformat Exception here
for(int i=0;i<tc;i++) // Even if my inputs are on separate lines
{
String original = br.readLine();
palindrome(original);
}
}

public static void palindrome(String original)
{
String reverse="";
int length = original.length();
for ( int i = length - 1 ; i >= 0 ; i-- )
reverse = reverse + original.charAt(i);
if (original.equals(reverse))
{
System.out.println(0);
}
else
{
char[] org = original.toCharArray();
int len = org.length;
int mid = len / 2;

if(len % 2 == 0)
{
char[] front = new char[mid];
char[] back = new char[mid];
for(int i=0;i<mid;i++)
{
front[i] = org[i];
}
int j=0;
for(int i=len-1;i>=mid;i--)
{
back[j] = org[i];
j++;
while(j > mid)
{
break;
}
}
change(front,back,mid);
}
else
{
char[] front = new char[mid];
char[] back = new char[mid];
for(int i=0;i<mid;i++)
{
front[i] = org[i];
}
int j=0;
for(int i=len-1;i>mid;i--)
{
back[j] = org[i];
j++;
while(j > mid)
{
break;
}
}
change(front,back,mid);
}
}
}
public static void change(char[] front,char[] back,int len)
{
int count =0;
for(int i =0;i<len;i++)
{
if(front[i] != back[i] )
{
count += (back[i] - front[i]);
}
}
System.out.println(count)
}
}
  1. 我在这里尝试做的是从测试用例的数量(例如第一行中的 3 个)获取输入,然后是测试用例本身。
  2. 示例输入:

3

abc abcba abcd

  1. 现在它必须检查字符串是否是回文,如果是,那么它会打印 0
  2. 否则,它将字符串分成前后两半,并找到使其成为回文的最少更改次数。
  3. 这里我还检查了它是奇数还是偶数长度的字符串,如果奇数我省略了中间的字符。
  4. 通过更改,我们只能将“d”更改为“b”,而不能将“b”更改为“d”
  5. 字母一旦更改为“a”,就无法再更改。

我的代码适用于上述输入,但不适用于其他一些输入,我不明白为什么..

例如,如果我给出一个自定义测试用例

5
assfsdgrgregedhthtjh
efasfhnethiaoesdfgv
ehadfghsdfhmkfpg
wsertete
agdsjgtukgtulhgfd

我收到数字格式异常。

最佳答案

您的代码在这里工作正常,没有 NumberFormatException: http://ideone.com/QJqjmG

关于java - 减少字母的值,例如可以将 'd' 更改为 'c' ,但不能将 'c' 更改为 'd' 。为了形成回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25959246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com