代码改变世界

各种算法小集

2013-07-10 12:14  梁小白  阅读(227)  评论(0编辑  收藏  举报

本人的数学细胞实在不发达,记忆力又差,一讲到算法就头疼。

但现在满世界都要靠这个过关斩将。姑且记录一点点,学而时习之。

1.删除字符串重复字符:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main() {

    int i,j;
    char s[]="aabbbbcccdd";
    for(i=0;i<(int)strlen(s);i++){
        for(j=i+1;j<(int)strlen(s);j++)
            if(s[i]==s[j])
                s[j]=' ';

    }
    for(i=0;i<(int)strlen(s);i++)
        if(s[i]!=' ')
            printf("%c",s[i]);
    return 0;
}

 2.删除数组中重复元素

if __name__ == '__main__':
    alist=['aa','bb','ab','ac','ad','aa','aa','ac','bb','aa'];
    blist=set(alist);
    print "method1: %s" % blist;
    clist=[];
    for x in alist:
        if x not in clist:
             clist.append(x);
                        
    print "method2: %s" % clist;
    dlist=[];
    alist.sort();
    l=len(alist);
    for i in range(l) :
        if alist[i]!=alist[i-1]:
            dlist.append(alist[i]);
    print "method3: %s" % dlist;