快手机器学习笔试
其中考到了一道算法当时没顺利写出来,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;
}
