题目描述
请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。
给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。
测试样例
"This is nowcoder"
返回:"redocwon si sihT"
解法
//注意不分配额外空间
//①C++
//1.2原串翻转
1 class Reverse { 2 public: 3 string reverseString(string iniString) { 4 // write code here 5 int strLen = iniString.size(); 6 if(strLen < 0) 7 { 8 return NULL; 9 } 10 int left = 0; 11 int right = strLen-1; 12 char ch; 13 for (; left <right;) 14 { 15 ch = iniString[left]; 16 iniString[left] = iniString[right]; 17 iniString[right] = ch; 18 ++left; 19 --right; 20 } 21 return iniString; 22 } 23 };
//Java
1 import java.util.*; 2 public class Reverse 3 { 4 public String reverseString(String iniString) 5 { 6 StringBuilder sb = new StringBuilder(iniString); 7 int low = 0; 8 int high = iniString.length() - 1; 9 char temp = '