快手机器学习笔试
其中考到了一道算法当时没顺利写出来,ip地址转换为整数。
#include <iostream> #include <string> #include <vector> using namespace std; vector<int> cal_nums(string s){ int length = s.size(); int num = 0; vector<int> nums; for (int i = 0; i < length; ++i){ char item = s[i]; if (item == '.'){ if (num > 255) return nums; else{ nums.push_back(num); num = 0; } } else if (item >= '0' && item <= '9') num = num * 10 + item - '0'; else return nums; } if (num > 255) return nums; else{ nums.push_back(num); num = 0; } return nums; } int main(){ string ip = "10.0.***3"; vector<int> nums = cal_nums(ip); long long val = 0; if (nums.size() == 4){ long long val1 = nums[0] << 24; long long val2 = nums[1] << 16; long long val3 = nums[2] << 8; val += val1 + val2 + val3 + nums[3]; } cout << val << endl; return 0; }