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);

  • 相关阅读:
    为什么项目经理非常难有节操的选举
    二叉查找树的删除操作
    二叉查找树的前驱后继
    替罪羊树
    树链剖分
    DFS序
    bzoj3224: Tyvj 1728 普通平衡树(平衡树)
    splay树入门(带3个例题)
    红黑树
    AVL树
  • 原文地址:https://www.cnblogs.com/mydomain/p/9614845.html
Copyright © 2011-2022 走看看