题目:HJ23 删除字符串中出现次数最少的字符
import sys
while True :
try :
s = input ( ) . strip( )
d = { }
for val in s:
if val in d:
d[ val] += 1
else :
d[ val] = 1
min_cnt = min ( d. values( ) )
res = ""
for val in s:
if d[ val] != min_cnt:
res += val
print ( res)
except :
break
import java. util. Scanner ;
import java. util. * ;
public class Main {
public static void main ( String [ ] args) {
Scanner sc = new Scanner ( System . in) ;
String str = sc. nextLine ( ) ;
char [ ] charArray = str. toCharArray ( ) ;
Map < Character , Integer > map = new HashMap < > ( ) ;
for ( char ch : charArray) {
if ( map. get ( ch) != null ) {
map. put ( ch, map. get ( ch) + 1 ) ;
} else {
map. put ( ch, 1 ) ;
}
}
List < Map. Entry < Character , Integer > > list = new LinkedList < > ( map. entrySet ( ) ) ;
list. sort ( Map. Entry . comparingByValue ( ) ) ;
int min = list. get ( 0 ) . getValue ( ) ;
List < Character > tmp = new ArrayList < > ( ) ;
for ( Map. Entry < Character , Integer > kv : map. entrySet ( ) ) {
if ( kv. getValue ( ) <= min) {
tmp. add ( kv. getKey ( ) ) ;
}
}
StringBuilder rs = new StringBuilder ( ) ;
for ( char c : charArray) {
if ( ! tmp. contains ( c) ) {
rs. append ( c) ;
}
}
System . out. println ( rs) ;
}
}