gpt4 book ai didi

c++ - 反转字符串?一个更优化的方式

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:03:29 27 4
gpt4 key购买 nike

#include<iostream>
#include<string.h>
using namespace std;
int main ()
{
char str[50], temp;
int i, j;
cout << "Enter a string : ";
gets(str);
j = strlen(str) - 1;
for (i = 0; i < j; i++,j--)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
cout << "\nReverse string : " << str;
return 0;
}

有没有不使用这个函数来反转字符串的更优化的方法?函数会从S的最后一个位置开始,将字符串倒序继续复制。而不是使用 tmp 变量。

string reverse(string s)
{
string reversed ;
for(int is.length();int i >0;--)
{
reversed +=s[i];
}
return reversed;
}

最佳答案

您可以使用 std::reverse 原地反转字符串,复杂度为 (last - first)/2 交换,这与第一个函数的复杂度完全相同,但更简洁。

第二种方法有额外分配的开销,最终可能会变慢。

关于c++ - 反转字符串?一个更优化的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55180433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com