【蓝桥杯】压缩字符串
题目:
解题思路:
遍历字符串,每个字符与前一个字符比较,若相同 count + 1 ,若不同,将 temp 添加至新字符串末尾,并更新 temp ,同时若 count > 1 (即本字符出现多次,可以压缩), 将 count 添加至新字符串末尾。同时利用 falg 判断是否进行压缩操作。
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
String str = scan.nextLine();
StringBuilder ans = new StringBuilder();
char temp = str.charAt(0);
int count = 1;
boolean flag = false; // 判断是否压缩
for (int i = 1; i < str.length(); i++) {
if (temp == str.charAt(i)){
count++;
}
else {
ans.append(temp);
temp = str.charAt(i);
if (count > 1) {
ans.append(count);
count = 1;
flag = true; // 进行了压缩
}
}
}
//处理最后一个字符
ans.append(temp);
if (count > 1) {
ans.append(count);
flag = true;
}
if (!flag) {
System.out.println("NO");
}
else {
System.out.println(ans);
}
scan.close();
}
}