原串反转 牛客网 程序员面试金典 C++ Python
原串反转 牛客网 程序员面试金典 C++ Python
-
题目描述
-
请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。
-
给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。
-
测试样例:
-
"This is nowcoder"
-
返回:"redocwon si sihT"
C++
class Reverse {
public:
//run:4ms memory:608k
string reverseString(string iniString){
for(unsigned i = 0; i < iniString.size() / 2; ++i){
char tmp = iniString[i];
iniString[i] = iniString[iniString.size() - i - 1];
iniString[iniString.size() - i - 1] = tmp;
}
return iniString;
}
};
Python
class Reverse:
#run:73ms memory:5732k
def reverseString(self, iniString):
result = ""
max_index = len(iniString)
for i in range(0,max_index):
result += iniString[max_index-1 - i]
return result