概述
package test;
import java.util.Scanner;
/**
* 消消乐(字符串)
* 描述
* 给定一个只包含大小写字母的字符串(大小写敏感),若相邻两个元素相等则消除,直到最后字符串消除不了了,输出消消乐后字符串的长度,若遇到非大小写字母以外的字符,则输出0。
* 示例
* 输入:mMbccbc
* 输出:3
* 解释:cc消掉,然后bb消掉,最后剩余mMc,输出长度3
*/
public class TestProject {
public static void main(String[] args) {
/*
思路:
1.字符串长度为n就要比较n-1次
2.相邻元素 i和i+1 charAt(),如果相等就把这两个字符添加到StringBuffer里面
3.将原字符串中StringBuffer的内容替换为""
4.将替换后的内容赋值给原字符串
5.对于i,归0重新循环(第二次不会比较前两个字符因此先判断前两个字符是否相等,相等的话用字符串截取即可)
6.清空StringBuffer里面的内容
*/
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
StringBuffer stringBuffer = new StringBuffer();
if (s != null && s.length() > 0) {
for (int i = 0; i < s.length() - 1; i++) {
//如果字符串是loolmnihao,为了使得第二次能检测到ll所以得加这步
//第二次不会比较前两个字符因此先判断前两个字符是否相等,相等的话用字符串截取即可
if (s.charAt(0) == s.charAt(1)) {
s = s.substring(2);
}
if (s.length() > 2) {
if (s.charAt(i) == s.charAt(i + 1)) {
stringBuffer.append(s.charAt(i));
stringBuffer.append(s.charAt(i + 1));
String replace = s.replace(stringBuffer.toString(), "");
s = replace;
i = 0;
//清空stringbuffer
stringBuffer.delete(0, stringBuffer.length());
}
}
}
}
//System.out.println(s);
System.out.println(s.length());
}
}
最后
以上就是眯眯眼小甜瓜为你收集整理的华为机试(字符串消消乐---Java实现)的全部内容,希望文章能够帮你解决华为机试(字符串消消乐---Java实现)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复