LeetCode 面试题 01.01. 判定字符是否唯一

题目描述

面试题 01.01. 判定字符是否唯一

思路分析

解法一:布尔数组计数(推荐)

核心思路

  • 用长度 128 的布尔数组记录字符是否出现过。
  • 遍历字符串,若发现已出现则返回 false。
  • 遍历结束返回 true。


复杂度分析

  • 时间复杂度:O(n),其中 n 表示字符串长度。
  • 空间复杂度:O(1)。
class Solution {
    public boolean isUnique(String astr) {
        boolean[] seen = new boolean[128];
        for (int i = 0; i < astr.length(); i++) {
            char ch = astr.charAt(i);
            if (seen[ch]) {
                return false;
            }
            seen[ch] = true;
        }
        return true;
    }
}
func isUnique(astr string) bool {
	seen := make([]bool, 128)
	for i := 0; i < len(astr); i++ {
		ch := astr[i]
		if seen[ch] {
			return false
		}
		seen[ch] = true
	}
	return true
}

相似题目

题目 难度 考察点
242. 有效的字母异位词 简单 计数
387. 字符串中的第一个唯一字符 简单 计数
409. 最长回文串 简单 计数
49. 字母异位词分组 中等 哈希表
383. 赎金信 简单 计数
本文作者:
本文链接: https://hgnulb.github.io/blog/2023/86203267
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!