【发布时间】:2022-09-24 12:07:56
【问题描述】:
需要在不影响用户可以输入忽略的所有非字母字符和特定字符的情况下反转字符串。我想出了如何忽略非字母字符,它可以在文本到反向匹配文本到忽略字符串时完成工作,但在它不同时不起作用。
这是我的代码:
public class Anagram {
public static String reverseString(String rev, String ignore) {
char[] str = rev.toCharArray();
int r = str.length - 1;
int l = 0;
if ((ignore != null) && ignore.contains(rev)) {
char[] ign = ignore.toCharArray();
while (l < r)
for (int i = 0; i < ignore.length(); i++) {
if (!Character.isAlphabetic(str[l]) || (ign[i] == str[l])) {
l++;
} else if (!Character.isAlphabetic(str[r]) || (ign[i] == str[r])) {
r--;
} else {
char tmp = str[l];
str[l] = str[r];
str[r] = tmp;
l++;
r--;
}
}
} else {
while (l < r) {
if (!Character.isAlphabetic(str[l])) {
l++;
} else if (!Character.isAlphabetic(str[r])) {
r--;
} else {
char tmp = str[l];
str[l] = str[r];
str[r] = tmp;
l++;
r--;
}
}
}
return new String(str);
}}}
例如我需要什么: 输入:字符串 rev \"abcdefg\",字符串忽略 \"cf\" 输出:\"gecdbfa\"
-
请提供示例输入和输出。
-
我需要的示例:输入:String rev \"abcdefg\",String ignore \"cf\" 输出:\"gecdbfa\"
-
你如何建议这样做 - 用你自己的话说?您当前的代码有什么问题?