题目:
解题思路:
遍历字符串,每个字符与前一个字符比较,若相同 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();}
}