题解 | #统计一句话中重复单词的个数#

统计一句话中重复单词的个数

http://www.nowcoder.com/practice/2128e598b5a5407195c31175b5b33360

题意整理。

  • 输入一段字符串,统计各个字符出现的次数,只统计大小写字母类型的字符。

方法一(哈希表)

1.解题思路

  • 遍历输入的字符串。
  • 如果是大小写字母,则作为键添加到map,并将出现次数作为键对应的值存到map。

动图展示: alt

2.代码实现

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();

        //遍历输入的字符串
        for(char c:line.toCharArray()){
            //如果是大写或小写字母,则添加到map中,并将出现次数作为键对应的值存到map
            if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){
                map.put(c,map.getOrDefault(c,0)+1);
            }
        }

        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}

3.复杂度分析

  • 时间复杂度:假设输入字符串长度为n,最多有n次put操作,所以时间复杂度为O(n)O(n)
  • 空间复杂度:需要额外大小为n的哈希表,所以空间复杂度为O(n)O(n)
xqxls的题解 文章被收录于专栏

牛客题解

全部评论

相关推荐

2024-12-23 10:55
已编辑
大连理工大学 Java
牛客930504082号:华子综测不好好填会挂的,而且填的时候要偏向牛马选项
点赞 评论 收藏
分享
评论
7
1
分享

创作者周榜

更多
牛客网
牛客企业服务