题解 | #确定字符互异#

确定字符互异

http://www.nowcoder.com/practice/9618c2a9e8a14c3e82954ee14168f592

通过两个for循环依次排查是否含有相同的字符 class Different { public: bool checkDifferent(string iniString) { // write code here for(int i=0;i<iniString.size()-1;i++) { for(int j=i+1;j<iniString.size();j++) { if(iniString[i]==iniString[j]) return false; } } return true; } };

//改进,哈希 class Different { public: bool checkDifferent(string iniString) { // write code here unordered_map<char, int> um; for(auto e : iniString) { um[e]++; } for(int i = 0; i < iniString.size(); ++i) { if(um[iniString[i]] > 1) return false; } return true; } };

全部评论
这个效率太差了!!!!
点赞 回复 分享
发布于 2022-02-16 11:28
可以使用哈希表来判断一个字符串中是否存在重复字符。 Java 代码如下: ``` public class CheckDifferent { public boolean checkDifferent(String iniString) { // 哈希表,用来记录字符串中出现的字符 boolean[] hash = new boolean[256]; for (int i = 0; i < iniString.length(); i++) { // 获取字符串中的字符 char c = iniString.charAt(i); // 如果哈希表中已经有了该字符,说明字符串中有重复字符 if (hash[c]) { return false; } // 将哈希表中对应的位置设为true,表示该字符已经出现过 hash[c] = true; } // 如果遍历完字符串中的所有字符后,哈希表中没有重复字符,则返回true return true; } } ``` 以上代码使用了一个布尔类型的数组来记录字符串中出现过的字符。在遍历字符串中的每一个字符时,如果在哈希表中对应的位置上已经有了该字符,则说明字符串中有重复字符,返回false;如果没有重复字符,则遍历完整个字符串后返回true。 这是人工智能chatGPT的回答,我不清楚对错
点赞 回复 分享
发布于 2022-12-11 19:46 陕西

相关推荐

扭转乾坤_:现在企业都是学华为,一直通过丢池子里,最后捞
点赞 评论 收藏
分享
4 2 评论
分享
牛客网
牛客企业服务