题解 | #字符串去重#

字符串去重

http://www.nowcoder.com/practice/f105c85ed9d44469986d56c27920639e

题目的主要信息:

  • 获取一串字符串,要求去除重复的字符
  • 请使用HashSet解决这一问题

具体做法:

HashSet就是集合的原理,插入的内容自动去重,因此我们只需要遍历字符串将字符往HashSet里面全部添加就行了,里面只会留下全部非重复字符。

alt (ps:图示为有序集合的示例,本题中是无序集合,但是原理是一样的)

import java.util.HashSet;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        scanner.close();
        HashSet<Character> hs = new HashSet<>(); 
        for(int i = 0; i < str.length(); i++) //遍历字符串
            hs.add(str.charAt(i)); //每个字符插入集合
        for (char c:hs) { //输出集合元素
            System.out.print(c);
        }
    }
}

复杂度分析:

  • 时间复杂度:O(n)O(n)O(n),其中nnn为字符串的长度,遍历字符串
  • 空间复杂度:O(n)O(n)O(n),最坏情况字符串字符都不相同,集合大小为nnn
孤帆远影碧空尽 文章被收录于专栏

牛客网各类题单题解~

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务