LintCode 判断字符串是否没有重复字符题目分析代码

题目

实现一个算法确定字符串中的字符是否均唯一出现

样例 给出"abc",返回true

给出"aab",返回false

挑战 如果不使用额外的存储空间,你的算法该如何改变?

分析

用两种方法,一种借助set没有重复元素的特点,如果add不进去,就说明重复了,就直接returnfalse 第二种方法,设立一个数组,用来判断字符出现的次数,第二次出现就判断为false

代码

public class Solution {
    /**
     * @param str: a string
     * @return: a boolean
     */
    public boolean isUnique(String str) {
        // write your code here
                Set set = new HashSet();
        for(int i=0;i<str.length();i++)
            if(set.add(str.charAt(i))==false)
                return false;
        return true;
    }
}
public class Solution {
    /**
     * @param str: a string
     * @return: a boolean
     */
    public boolean isUnique(String str) {
        // write your code here
        boolean[] char_set = new boolean[256];
        for (int i = 0; i < str.length(); i++) {
        int val = str.charAt(i);
        if (char_set[val]) return false;
            char_set[val] = true;
        }
        return true;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

java基础学习_集合类03_用户登录注册案例(集合版)、Set集合、Collection集合总结_day17总结

============================================================================= ==...

1022
来自专栏用户画像

[Array和ArrayList的区别]

1. Array类型的变量在声明的同时必须进行实例化(至少得初始化数组的大小),而ArrayList可以只是先声明。

652
来自专栏Java后端技术栈

初探Java源码之ArrayList

在我们的日常开发中,集合类是我们基本上每个人都会用经常用到的东西,用着用着,突然有一天我心生好奇,那么java集合类的这些源码是什么呢?那么我打算接下来一个...

801
来自专栏小怪聊职场

Java|Map、List与Set的区别

42212
来自专栏电光石火

HashSet集合中hashCode及equals方法详解

首先我们熟知HashSet集合中元素存储的特点: 1)不允许元素重复; 2)不会记录元素添加的先后顺序; 3)HashSet中比较两个对象是否相同...

1829
来自专栏Bingo的深度学习杂货店

Q35 Search Insert Position

Given a sorted array and a target value, return the index if the target is found...

2887
来自专栏Android群英传

深入Java源码解析容器类List、Set、Map

2073
来自专栏Java帮帮-微信公众号-技术文章全总结

第十六天 常用API-Date&DateFormat&Calender&System&Math&基本类型包装类&正则【悟空教程】

第十六天 常用API-Date&DateFormat&Calender&System&Math&基本类型包装类&简单正则表达式【悟空教程】

1012
来自专栏java技术学习之道

java集合类详解

1416
来自专栏Java爬坑系列

【Java入门提高篇】Day20 Java集合类详解(三)List接口

  今天要说的是Collection族长下的三名大将之一,List,Set,Queue中的List,它们都继承自Collection接口,所以Collectio...

2347

扫码关注云+社区

领取腾讯云代金券