校招准备系列:每天一道算法题(4)
PS:耽搁了几天,上班中通过牛客刷题也是不错的选择,由于是在牛客刷的题,所以我就只提供自己的算法代码咯,不写完整的了!
原串翻转:请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。
给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。
测试样例:
"This is nowcoder"
返回:"redocwon si sihT"
方法一:暴力赋值法:利用charAt(i)将每个char字符赋给新字符串newStr,具体编码如下:
public class Reverse {
public String reverseString(String iniString) {
// write code here
char c;
String newStr = "";
for(int i = 0;i<=iniString.length()-1;i++){
c = iniString.charAt(iniString.length()-1-i);
newStr = newStr + c;
}
return newStr;
}
}
方法二:巧用java自带方法:使用StringBuffer类自带的reverse( )方法,正常返回即可:
public class Reverse {
public String reverseString(String iniString) {
// write code here
StringBuffer sb = new StringBuffer(iniString);
return sb.reverse().toString();
}
}
结束语:坚持每一天,继续努力!!!