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


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

    解决思想: 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);

  • 相关阅读:
    macOS免费的NTFS读写软件
    Python模块和模块引用(一)
    Python Class (一)
    Ubuntu系统管理systemd
    Case Closed?
    The 'with' and 'as' Keywords
    Buffering Data
    rstrip
    堆排序
    堆 续9
  • 原文地址:https://www.cnblogs.com/mydomain/p/9614845.html
Copyright © 2020-2023  润新知