gpt4 book ai didi

java - JAVA从字母表的相反端找到对应的字母并递归地从字符串中删除

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

方法应该接受一个单词,递归地遍历字符串并找到与字母表两端距离相同的字母并将其删除。如果删除匹配项,这些字母将无法再次使用。如果每个字母都被删除,那么它就是一个匹配。

for (int i = 1; i < word.length()-1; i++)
{
if (word.charAt(0) + word.charAt(i) == 155)
{
StringBuilder sb = new StringBuilder(word);
sb.deleteCharAt(0);
sb.deleteCharAt(i);
String strNew = sb.toString();
System.out.println(strNew);
return isAlphaOpp(strNew);
}
}
return false;
}

最佳答案

我对你的方法做了一些修改,你看一下。如果您的字符串全部是大写,则需要与 155 进行比较,如果您需要的所有小写字母与 219 进行比较。正如 @Raghu 所建议的,这不需要递归(这使事情变得复杂),但我假设您想尝试使用递归。

public static boolean isAlphaOpp (String word)
{
//if word has odd number of characters, it cannot be an alpha opp
if (word.length() % 2 != 0)
{
return false;
}
//if string makes it to 0, then word must be an alpha opp
if (word.length() == 0)
{
return true;
}

/*if (word.charAt(0) + word.charAt(word.length()-1) == 155)
{
System.out.println(word.substring(1, word.length()-1));
return isAlphaOpp(word.substring(1, word.length()-1));
}
*/
//Should go thru each letter and compare the values with char(0). If char(0) + //char(i) == 155 (a match) then it should remove them and call the method again.
int length = word.length()-1;
int start = 0;
String newStr = null;
while(start < length) {

if(word.charAt(start) + word.charAt(length) == 219) {
StringBuilder sb = new StringBuilder(word);
sb.deleteCharAt(length);
sb.deleteCharAt(start);
newStr = sb.toString();
System.out.println(newStr);
start++;
length--;
break;
} else {
start++;
}
}
if(newStr != null) {
return isAlphaOpp(newStr);
}
return false;
}

关于java - JAVA从字母表的相反端找到对应的字母并递归地从字符串中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858862/

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