C. Alphabetic Removals

http://codeforces.com/contest/999/problem/C

給n個字母,刪掉k個, 從a開始刪,刪完了a再開始刪b ,一直到z, 輸出剩下的字符

import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int k = scan.nextInt();
        String str = scan.next();
        char[] ch = str.toCharArray();
        int[] num = new int[26];
        int[] ss = new int[26];
        for(int i = 0; i < n; i++){
            num[str.charAt(i) - 'a']++;
            ss[str.charAt(i) - 'a']++;
        }   

        int ans = 0; 
        while(k>0){
            int temp = Math.min(k, num[ans]);
            k -= temp;
            num[ans] -= temp;
            ans++;          
        }
        for(int i = 0; i < n; i++){
            if(num[ch[i]-'a']>0&&ss[ch[i]-'a']==num[ch[i]-'a']){
                System.out.print(ch[i]);                                
            }else if(num[ch[i]-'a']==0){
                continue;
            }else{
                num[ch[i]-'a']++;
            }
        }

    }   
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章