题解 | #删除字符串中出现次数最少的字符#

删除字符串中出现次数最少的字符

https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        int[] arr = new int[128];
        while ((str = br.readLine()) != null) { // 注意 while 处理多个 case
            StringBuilder Str = new StringBuilder();
            for (int i = 0; i < str.length(); i++) {
                Str.append(str.charAt(i));
                arr[Integer.valueOf(str.charAt(i))]++;
            }//这个for循环记录每个字符出现的次数并记录得到arr
            int n = str.length();
            int k = 97;
            int t = n;
            StringBuilder sb = new StringBuilder();
            for (int i = 1; i <= 20; i++) {
                while (arr[k] == i || k <= 122) {
                    if (arr[k] == i)
                        sb.append((char) (k));
                    k++;
                }
                k=97;
                if (sb.length() > 0)
                    break;
            } //这个for循环找到出现次数最少的字符并记录到sb
            for (int i = 0; i < sb.length(); i++) {
                for (int j = 0; j < n; j++) {
                    if (Str.charAt(j) == sb.charAt(i)) {
                        Str.deleteCharAt(j);
                        t--;
                        n--;
                        j--;
                    }
                }
                n = t;
                t = n;
            }//这个for循环遍历字符串,找到并删除
            System.out.println(Str.toString().trim());
        }
    }
}

#删除字符串中出现次数最少的字符#
全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:21
被夸真的超级开心,好可爱的姐姐
码农索隆:老色批们不用脑补了,我把金智妮的图找来了查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务