地址 https://leetcode-cn.com/problems/is-unique-lcci/
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。 示例 1: 输入: s = "leetcode" 输出: false 示例 2: 输入: s = "abc" 输出: true 限制: 0 <= len(s) <= 100 如果你不使用额外的数据结构,会很加分。
算法1
(哈希) O(1)
遍历字符串,使用哈希记录每个字符出现的次数
如果没有出现1次以上的记录 那么每个字符都是仅出现一次的
class Solution { public: set<char> ss; bool isUnique(string astr) { for(int i = 0; i < astr.size();i++){ if(ss.count(astr[i])!=0) return false; ss.insert(astr[i]); } return true; } };
算法2
(哈希) O(1)O(1)
优化下速度 使用数组进行字符哈希
会比使用哈希数据结构 速度更快
class Solution { public: int mm[300]; bool isUnique(string astr) { for(int i = 0; i < astr.size();i++){ if(mm[astr[i] -0] != 0) return false; mm[astr[i]-0]++; } return true; } };