题意
给出一个字符串s,返回该字符串的逆置形式,如”hello”返回”olleh”
题解
如果直接从字符串s的最后一个字符开始,从后往前扫描,每一个字符都放入结果字符串t,然而显然就会TTL。。。
所以需要设置两个point,一个指针指向字符串的开头,而另一个指针指向字符串的末尾。两个指针将继续互换其元素并朝向彼此行进。这样的时间复杂度会优于一个指针。
String:toCharArray() 方法将字符串转换为字符数组。
public char[] toCharArray()
//一个指针 O(n) TTL
public class Solution {
public String reverseString(String s) {
String t = "";
for(int i = s.length()-1;i >= 0;i --)
{
t += s.charAt(i);
}
return t;
}
}
public class Solution {
public String reverseString(String s) {
char []t = s.toCharArray();
int i = 0;
int j = s.length()-1;
while(i < j)
{
//swap(s.charAt(i++),s.charAt(j--));
char temp = t[i];
t[i] = t[j];
t[j] = temp;
i ++;
j --;
}
return new String(t);
}
}