字符串翻转的两种方法

来源:互联网 发布:wps文字软件下载 编辑:程序博客网 时间:2024/06/07 17:36

第一种方法:数组实现,空间复杂度O(1)

char* str_reverse(char* str){    int len = strlen(str);    for (int i = 0; i < len / 2; ++i)    {        char temp = str[i];        str[i] = str[len - i - 1];        str[len - i - 1] = temp;    }    return str;}

第二种方法:指针实现

char* str_reverse(char* str){    int len = strlen(str);    char* temp = (char*)malloc(len + 1);    char* strDest = temp;    for (int i = len - 1; i >= 0; --i)    {        *strDest++ = str[i];    }    *strDest = '\0';    return temp;}

第二种在调用函数的过程中开辟了临时空间,故空间复杂度已不是O(1)