第一题,很简单
import java.util.Scanner; public class Main { public static void main(String[] args) { //测试用例:DDDDoo yooouu lllovvvvvvvvvvve mmmmee Scanner sc=new Scanner(System.in); String s=sc.nextLine(); char[] arr=new char[s.length()]; for(int i=0;i<s.length();i++){ arr[i]=s.charAt(i); } StringBuilder helper=new StringBuilder(); helper.append(arr[0]);//先把第一个字符放进去 for(int i=1;i<arr.length;i++){ if(arr[i]!=arr[i-1]){ helper.append(arr[i]); } } String res=helper.toString(); System.out.println(res); } }第二题,细节很魔鬼
import java.util.*; public class Main2 { //测试用例:Five Little Monkeys Jumping on the Bed. It was bedtime. So five little monkeys took a bath. Five little Monkeys put on their pajamas. public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s=sc.nextLine(); HashMap<String,Integer> nums=new HashMap<>();//记录各个单词及其出现的次数 HashMap<String,String> record=new HashMap<>();//用来记录单词第一次出现时的大小写情况 //构造一个用来解析str的StringTokenizer对象,后面是指定的分隔符 StringTokenizer wordMap=new StringTokenizer(s,",!' '.;"); while(wordMap.hasMoreElements()){//判断枚举对象中是否还有数据 //返回枚举对象的下一个元素,转为string,再转为小写(这样大小写就可以共同计数了) String curWord=wordMap.nextElement().toString(); String tempWord=curWord.toLowerCase(); if(nums.containsKey(tempWord)==false){ nums.put(tempWord,1); record.put(tempWord,curWord);//存储第一次出现的单词的形式 }else{ nums.put(tempWord,nums.get(tempWord).intValue()+1); } } //利用重写sort的compare函数,把排序顺序的依据改为hashMap的value值,得到降序排列的ArrayList集合 List<Map.Entry<String,Integer>> col=new ArrayList<>(nums.entrySet()); Collections.sort(col, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o2.getValue()-o1.getValue(); } }); int maxCount=col.get(0).getValue();//最高频的词汇出现了maxCount次 List<String> list=new ArrayList<>();//存放最高频的词汇们 for(int i=1;i<nums.size();i++){ if(col.get(i).getValue()==maxCount){ list.add(col.get(i).getKey()); }else{ break; } } Collections.sort(list);//因为list集合里的元素是String,因此可以直接用这个方法得到字符串的字典排序(默认的) String max_first_word=record.get(list.get(0)); String res=max_first_word+" "+maxCount; System.out.println(res); } }
全部评论
(3) 回帖