您的位置:首页 > 其它

PAT-Speech Patterns (25)

2016-03-09 10:15 260 查看
题意:

alphanumerical character意为字母数字字符

the lexicographically smallest one意为按字典顺序最小的一个

all lower case小写的

case insensitive不区分大小写

解答:

此题需要注意

substring(a,b),包括a但不包括b

toLowerCase,全部变为小写,相应的toUpperCase为全部变为大写

计数采用了一般的map计数方式,此种方式非常普遍

遍历map,需要注意方式

比较字母大小使用compareTo

具体的java代码如下:

import java.util.*;
public class Main {
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
String s=scan.nextLine();
s=s.toLowerCase()+" ";
Map<String,Integer> map=new HashMap<String,Integer>();
int j=0;
for(int i=0;i<s.length();i++)
{
if(!(s.charAt(i)>='0' && s.charAt(i)<='9' || s.charAt(i)>='a' && s.charAt(i)<='z'))
{
if(i>j)
{
String temp=s.substring(j, i);
if(map.get(temp)==null)
map.put(temp, 1);
else
map.put(temp, map.get(temp)+1);
}
j=i+1;
}
}
String maxStr="";

for(Map.Entry<String,Integer> m:map.entrySet())
{
String t=m.getKey();
if(maxStr.equals(""))
maxStr=t;
if(map.get(t)==map.get(maxStr))
if(t.compareTo(maxStr)<0)
maxStr=t;
if(map.get(t)>map.get(maxStr))
maxStr=t;
}
System.out.println(maxStr+" "+map.get(maxStr));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: