题目一:
剑指 Offer 05. 替换空格https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
思路:遍历字符数组,替换. 似乎用stringbuilder更快
代码:
//用string
class Solution {
public String replaceSpace(String s) {
String res = "";
for(Character c : s.toCharArray())
{
if(c == ' ')
res+="%20";
else
res+=c;
}
return res;
}
}
//用stringBulider
class Solution {
public String replaceSpace(String s) {
StringBuilder res = new StringBuilder();
for(Character c : s.toCharArray())
{
if(c == ' ')
res.append("%20");
else
res.append(c);
}
return res.toString();
}
}
结果:
题目二:
想法:分两次获得子串并拼接
代码:
class Solution {
public String reverseLeftWords(String s, int n) {
String res="";
res+=s.substring(n,s.length());
res+=s.substring(0,n);
return res;
}
}
结果:
想法二:不能使用substring时,可以两次遍历添加到新串中.
使用取余法可简化代码
参考: 作者:jyd
链接:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/solution/mian-shi-ti-58-ii-zuo-xuan-zhuan-zi-fu-chuan-qie-p/
代码:
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder res = new StringBuilder();
for(int i = n; i < n + s.length(); i++)
res.append(s.charAt(i % s.length()));
return res.toString();
}
}
结果: