快手机器学习笔试

其中考到了一道算法当时没顺利写出来,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;
}
#快手##机器学习##笔试题目#
全部评论
全是手撕算法题,没有问项目或者基础知识吗?
点赞 回复 分享
发布于 2019-09-26 20:29

相关推荐

06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 18:13
点赞 评论 收藏
分享
评论
1
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务