功能描述:删除字符串中字符个数最少的字符,最少字符串有多个,最少的要全部删除,然后返回该子字符串。
输入:asdasdas
输出:asasas
package 华为机试题;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* @author Hutongling
*
* @time:2017年4月8日 下午5:28:18
*/
public class 删除字符串中字符个数最少的字符 {
static String deleteMinChar(String data){
if(data==null ||data.length()==0)
return null;
String result="";
Map<Character, Integer> map=new HashMap<>();
for(int i=0;i<data.length();i++)
map.put(data.charAt(i), 0);
for(int i=0;i<data.length();i++)
map.put(data.charAt(i), map.get(data.charAt(i))+1);
int minTimes=Integer.MAX_VALUE;
char c = 0;
// Set<Character> keySet=map.keySet();
// for(char s:keySet)
// if(map.get(s)<minTimes){
// minTimes=map.get(s);
// c=s;
// }
for(int i=0;i<data.length();i++ )
if(map.get(data.charAt(i))<minTimes){
minTimes=map.get(data.charAt(i));
c=data.charAt(i);
}
for(int i=0;i<data.length();i++){
if(data.charAt(i)!=c)
result+=data.charAt(i);
}
return result;
}
public static void main(String[] args) {
String string="asdasdas";
System.out.println(deleteMinChar(string));
}
}
代码结果:
asasas