求帮忙看360笔试第一题(身边问了一圈觉得没问题)

直接遍历输入得字符串,然后统计单个字母出现得次数,然后输出次数最大得(只过了0.09)
求助帮忙看一下

n = list(input())
count = [0] * 26

for i in n:
    count[ord(i) - 97] += 1

ans = max(count)
print(ans)


#360公司##笔试题目##悬赏#
全部评论
ord 改成  n  ?
点赞 回复 分享
发布于 2019-08-31 18:32
[0]*26浅拷贝操作
点赞 回复 分享
发布于 2019-08-31 18:35
还有,用dic就不需要在ord操作了,if x in dic.keys(),dic[x]+=1 否则 dic[x]=1。最后统计一下print max dic.values()
点赞 回复 分享
发布于 2019-08-31 18:38
可能字符不一定是小写英文字母吧
点赞 回复 分享
发布于 2019-08-31 18:47
我一开始也这么写的,还没想通为啥
点赞 回复 分享
发布于 2019-08-31 19:07
我也是统计出现字符最多的个数。。。只有72,也看不懂错在哪
点赞 回复 分享
发布于 2019-08-31 20:43
我也是这么做的,全过了 public class a360 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String line = sc.nextLine(); int [] rec = new int[26]; int max = 0; for(int i=0;i<line.length();i++) { max = Math.max(max, rec[line.charAt(i)-'a']+=1); } System.out.println(max); } }
点赞 回复 分享
发布于 2019-08-31 20:53
哈哈哈,来一波骚操作,第二题真心不会,不过第一题确实简单一些。 import java.util.HashMap; import java.util.Map; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args){ @SuppressWarnings("resource") Scanner sc = new Scanner(System.in); String  s = sc.nextLine(); char[] c = s.toCharArray(); Map<Object,Integer> map = new HashMap<Object,Integer>(); for(int i =0;i<c.length;i++){ map.put(c[i],map.getOrDefault(c[i],0)+1); } Set<Map.Entry<Object,Integer>> set = map.entrySet(); int max = 0; for(Map.Entry<Object,Integer> entry:set){ max = entry.getValue()>max?entry.getValue():max; } System.out.println(max); } }
点赞 回复 分享
发布于 2019-08-31 21:00

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务