codewars刷题常用代码片
11 Feb 2019
|
|
数学
快速算一个int有几位数
int sizeofint(int x) {
const static int table[] = { 9, 99, 999, 9999, 99999, 999999, 9999999,
99999999, 999999999, std::numeric_limits<int>::max()};
for (int i = 0; i<10; i++)
if (x <= table[i])
return i + 1;
}
字符串操作
拆分
std::vector<std::string> split(const std::string& s, char delimiter)
{
std::vector<std::string> tokens;
std::string token;
std::istringstream tokenStream(s);
while (std::getline(tokenStream, token, delimiter))
{
tokens.push_back(token);
}
return tokens;
}
判断标点符号 std::ispunct,一可以自己写个数组暴力查表
Range for循环判定结尾, 这种写法注意可能vector有重复导致判断错误
for (auto v : vec) {
if (v != vec.back()) {//...}
}
参考
- geekforgeeks 问题列表 https://g4g.apachecn.org/#/docs/a-boolean-matrix-question