这是一个消除字符串中相邻不同字符的算法。
下面是用 Java 实现的代码:
public static String eliminateAdjacentChars(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (i == 0 || c != str.charAt(i - 1)) {
sb.append(c);
}
}
return sb.toString();
}
算法的步骤如下:
创建一个字符串构建器
StringBuilder
,用于存储结果字符串。使用循环遍历字符串
str
中的每个字符。如果当前字符是字符串
str
的第一个字符,或者当前字符与前一个字符不同,就将当前字符添加到字符串构建器中。返回字符串构建器的字符串表示。
这个算法的时间复杂度是 O(n),其中 n 是字符串 str
的长度。
你可以使用下面的代码来测试这个算法:
String str= "xyyx";
str = eliminateAdjacentChars(str);
System.out.println(str); // 输出:yx