LeetCode 远征日记(2)

LeetCode 远征日记(2)
CoolPine找到一个数字的 K 美丽值
📖 方法一
思路
首先,将问题进行拆分:
- 将 num 由 int 类型转化为 string 类型,方便后续获取子字符串。
- 在 numStr 中遍历所有可能的长度为 k 的 subNumStr:
- 计算迭代变量 i 能达到的最大值为:numStr.length() - k
- 利用 string 中的方法 substr 获取子字符串 subNumStr
- 判断 subNumStr 能否整除 num
- 利用库函数 atoi 将 string 类型的 subNumStr 转换为 int,该库函数自动考虑了前缀为 0 的情况
- 如果除数为 0 则 continue,否则如果能整除,则 knum++,否则 continue
代码
1 |
|
收获
- 将 int 类型转换为 string 类型:利用全局函数 std::to_string()
- 获取字符串 string 的子字符串:string.substr(),例如,str.substr(0, 3),表示从 0 下标开始数 3 个字符构成的字符串。
- 从 string 类型转换到数值:
| 函数 | 功能 |
|---|---|
| to_string(val) | 把 val 转换成 string |
| stoi(s, p, b) | 把字符串 s 从 p 开始转换成 b 进制的 int |
| stol(s, p, b) | long |
| stoul(s, p, b) | unsigned long |
| stoll(s, p, b) | long long |
| stoull(s, p, b) | ugsigned long long |
| stof(s, p) | float |
| stod(s, p) | double |
| stold(s, p) | long double |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果
