题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
import java.util.*; public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); while(scan.hasNext()){ String str = scan.nextLine(); solution(str); } // // String str = "aabcddd"; // solution(str); } public static void solution(String str){ int[] alphabet = new int[26]; char[] charArr = str.toCharArray(); for (int i=0;i<charArr.length;i++){ alphabet[(int)charArr[i]-(int)'a']++;//小写字母ASCII 97-122 } int min = Integer.MAX_VALUE; for (int i=0;i<alphabet.length;i++){ if (alphabet[i]!=0 && alphabet[i]<min){ min = alphabet[i]; } }//出现次数最小的找出来 ArrayList<Character> list = new ArrayList<>(); for (int i=0;i<alphabet.length;i++){ if (alphabet[i]==min){ list.add((char) (i+(int)'a') ); } }//可能有多个最小值 都同时收进list里 String res = ""; for (int i=0;i<charArr.length;i++){ if (!list.contains(charArr[i])){ res+=charArr[i] ; } }//最后就判断一下 加一下就行了 复杂度O(N) System.out.println(res); } }