zoukankan      html  css  js  c++  java
  • 设计一个算法移除字符串中的重复字符,并写出测试用例。

    设计一个算法移除字符串中的重复字符,并写出测试用例。

    解决思想: 1:对于每个字符,检查在一发现字符集合中是否已经存在。

         2:若存在,则跳过,否则加入到已发现字符集合中。

     1 #include<iostream>
     2 
     3 void removeDuplicates(char *str)
     4 {
     5     if(str==NULL)
     6         return;
     7     int len=strlen(str);
     8     if(len<2)
     9         return;
    10     int tail=1;
    11     for(int i=1;i<len;++i)
    12     {
    13         int j;
    14         for(j=0;j<tail;++j)
    15         {
    16             if(str[i]==str[j])
    17                 break;
    18         }
    19         if(j==tail)
    20         {
    21             str[tail]=str[i];
    22             ++tail;
    23         }
    24     }
    25     str[tail]=0;
    26     printf("%s
    ",str);
    27 }
    28 
    29 int main()
    30 {
    31     char mystr[]="abababa";
    32     removeDuplicates(mystr);
    33     return 0;
    34 }

    测试用例:1:不含有重复字符的字符串,如“abcd”;

         2:  含单一字符的字符串,如“aaaa”;

         3: 空字符与空指针,如“”与NULL;

         4:多个连续的字符串,如“aaabbb”;

         5: 不连续重复的字符串,如“abababa”;

    时间复杂度为O(n2);

  • 相关阅读:
    一切都是对象
    对象入门
    同步计算输入的各个数的总和与平均值
    与时间有关的类Date,DateFormat,Calendar
    获取文件信息
    串行化
    分解
    高速缓存
    压缩
    MyCAT实现MySQL的读写分离
  • 原文地址:https://www.cnblogs.com/mydomain/p/9614845.html
Copyright © 2011-2022 走看看