[LeetCode-面试01.01]判断字符是否唯一

一.题目描述:

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

示例 1:
输入: s = "leetcode"
输出: false 

示例 2:
输入: s = "abc"
输出: true

限制:
0 <= len(s) <= 100
如果不使用额外的数据结构,会很加分

二.题解

1.第一种方法

(1)解题思路

  • 第一次遍历字符串所有字母;
  • 第二次遍历从第一次遍历的后一位开始;
  • 判断两次遍历的字母是否相等,一旦相等则返回false;
  • 默认返回true

(2).代码:

class Solution {
    public boolean isUnique(String astr) {
        for (int i = 0; i < astr.length() - 1; i++) {
			for (int j = i + 1; j < astr.length(); j++) {
				if (astr.charAt(i) == astr.charAt(j)) {
					return false;
				}
			}
		}
		return true;
    }
}
2.方法二

(1)解题思路:

  • 利用set集元素不同的性质判定
  • 将String中的字符添加到set集中
  • 遍历结束后,若set集的大小和String集合的长度相同,则证明不重复
  • 否则有重复元素

(2)代码:

public static boolean isUnique2(String astr) {

        Set set = new HashSet();

        for (int i = 0; i < astr.length(); i++) {
            set.add(astr.charAt(i));
        }

        if (set.size() == astr.length()) {
            return true;
        } else {
            return false;
        }
}
发布了18 篇原创文章 · 获赞 0 · 访问量 477

猜你喜欢

转载自blog.csdn.net/aflyingcat520/article/details/105322169
今日推荐