随笔- 509  文章- 0  评论- 151  阅读- 22万 

2014-03-18 01:25

题目:给定一个字符串,判断其中是否有重复字母。

解法:对于可能有n种字符的字符集,用一个长度为n的数组统计每个字符的出现次数,大于1则表示有重复。

代码:

复制代码
 1 // 1.1 Implement an algorithm to determine if a string has all unique characters. What if you cannot use additional data structure?
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 class Solution {
 7 public:
 8     bool isAllUnique(const char *s) {
 9         if (nullptr == s) {
10             return false;
11         }
12         int i;
13 
14         int a[256];
15         memset(a, 0, 256 * sizeof(int));
16         for (i = 0; s[i]; ++i) {
17             if (a[s[i]]) {
18                 return false;
19             } else {
20                 a[s[i]] = 1;
21             }
22         }
23 
24         return true;
25     };
26 };
27 
28 int main()
29 {
30     Solution sol;
31     char s[100];
32     
33     while (scanf("%s", s) == 1) {
34         if (sol.isAllUnique(s)) {
35             printf("Unique.\n");
36         } else {
37             printf("Not unique.\n");
38         }
39     }
40 
41     return 0;
42 }
复制代码

 

 posted on   zhuli19901106  阅读(1481)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示