zoukankan      html  css  js  c++  java
  • 《Cracking the Coding Interview》——第1章:数组和字符串——题目1

    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.
    ");
    36         } else {
    37             printf("Not unique.
    ");
    38         }
    39     }
    40 
    41     return 0;
    42 }
  • 相关阅读:
    C# Winform中WndProc 函数作用
    C#程序集编译输出XML文档的作用
    C#属性访问器
    C#索引器
    static修饰符
    abstract 与 interface
    使用 Override 和 New 关键字进行版本控制
    scrapy爬虫初体验
    正则表达式
    MySQL常用指令
  • 原文地址:https://www.cnblogs.com/zhuli19901106/p/3606667.html
Copyright © 2011-2022 走看看