+ -
当前位置:首页 → 问答吧 → 求去掉字符串重复字符

求去掉字符串重复字符

时间:2011-12-05

来源:互联网

求去掉字符串重复字符,把非重复字符子串返回,要求时间复杂度为O(n)

作者: wangjin161   发布时间: 2011-12-05

C/C++ code


char *unique(char * ptr) {
    char *oldbeg = ptr;
    char *des = ptr;
    *des = *ptr;
    while (*ptr++ != '\0')
        if (*des != *ptr) *++des = *ptr;
    return oldbeg;
}


作者: mingliang1212   发布时间: 2011-12-05

C/C++ code

char *unique(char *str)
{
    char *rd = str;
    char *wr = str;

    while ((*rd == *wr) ? (*rd++) : (*++wr = *rd++));

    return str;
}



作者: we_sky2008   发布时间: 2011-12-05

字符组,扫两遍即可

作者: mosal   发布时间: 2011-12-05

扫两遍时间复杂度就不是O(n)了

作者: Arnold9009   发布时间: 2011-12-05

引用 4 楼 arnold9009 的回复:

扫两遍时间复杂度就不是O(n)了

时间复杂度是忽略常数的

作者: rentongdu   发布时间: 2011-12-05

引用 2 楼 we_sky2008 的回复:
C/C++ code


char *unique(char *str)
{
char *rd = str;
char *wr = str;

while ((*rd == *wr) ? (*rd++) : (*++wr = *rd++));

return str;
}

顶!

作者: wumuzi520   发布时间: 2011-12-05