| 每日一题做题记录,参考官方和三叶的题解 |
题目要求
思路:模拟
- 没有要求字母种类数目,所以就直接最简单的思路
- 给定为奇数则直接用一种字母;
- 偶数则两种字母,其中一种一个另一种
Java
class Solution {
public String generateTheString(int n) {
StringBuilder sb = new StringBuilder();
if (n % 2 == 0 && --n >= 0)
sb.append('r');
while (n-- > 0)
sb.append('v');
return sb.toString();
}
}
- 时间复杂度:
- 空间复杂度:,不计返回值为
C++
class Solution {
public:
string generateTheString(int n) {
if (n % 2 == 1)
return string(n, 'v');
return string(n - 1, 'v') + 'r';
}
};
- 时间复杂度:
- 空间复杂度:,不计返回值为
Rust
一行结束
impl Solution {
pub fn generate_the_string(n: i32) -> String {
format!("r{}", (vec!["v", "r"][n as usize % 2..(n as usize % 2) + 1].join("")).repeat(n as usize - 1))
}
}
- 时间复杂度:
- 空间复杂度:,不计返回值为
总结
浪了一个多月回来接着刷题,从简单模拟开始~
【要慢慢填填之前的算法坑了……
| 欢迎指正与讨论! |