[leetcode]第 3 天 字符串(简单)
05. 替换空格
思路
由于每次替换从1个字符变成3个字符,使用字符数组可方便地进行替换。
class Solution {
public String replaceSpace(String s) {
StringBuffer sb = new StringBuffer();
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if(c == ' ') sb.append("%20");
else sb.append(c);
}
return sb.toString();
}
}
58 - II. 左旋转字符串
思路
第一反应是subString
class Solution {
public String reverseLeftWords(String s, int n) {
return s.substring(n, s.length()) + s.substring(0, n);
}
}
其他解法:
列表遍历拼接:意思就是说新建一个StringBuilder先向res添加第n+1位至末位的字符,再向res添加首位至第n位的字符,最后将res转化为字符串并返回。
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder res = new StringBuilder();
for(int i = n; i < s.length(); i++)
res.append(s.charAt(i));
for(int i = 0; i < n; i++)
res.append(s.charAt(i));
return res.toString();
}
}
如果用字符串也可以:
class Solution {
public String reverseLeftWords(String s, int n) {
String res = "";
for(int i = n; i < n + s.length(); i++)
res += s.charAt(i % s.length());
return res;
}
}