1374. 生成每种字符都是奇数个的字符串
approach 1,模拟题
class Solution {
public String generateTheString(int n) {
StringBuilder res = new StringBuilder();
for (int i = 0; i < n-1; i++) {
res.append('a');
}
if (n % 2 == 0) {
res.append('b');
} else {
res.append('a');
}
return res.toString();
}
}
代码逻辑还可以做一定优化,循环完还需要判断显然比较麻烦,可以将n先减一,去做一次奇偶判断,最后在while整个剩下的n。
class Solution {
public String generateTheString(int n) {
StringBuilder res = new StringBuilder();
if ((n & 1) == 0 && --n >= 0) res.append('a');
while (n-- > 0) {
res.append('b');
}
return res.toString();
}
}
利用jdk11提供的String.repeat函数,简化代码同时也能提升性能
class Solution {
public String generateTheString(int n) {
StringBuilder res = new StringBuilder();
if (n % 2 == 0) return res.append("a".repeat(n-1)).append('b').toString();
return res.append("a".repeat(n)).toString();
}
}