...
腾讯会议 (50+min)
反问:...
有些问题记不清了,面试官人很好,全程没有很严肃,回答不好的点也会进行给一些提示。
腾讯会议,大约40min
手撕算法
开启共享屏幕,本地编辑器写,每个题目写完后要求讲思路
ipv4
使用一个int
类型存储int
类型解码为ipv4
地址int encode(String ipv4); String decode(int ipv4); 测试输入:"10.0.0.1"
写完算法就到反问环节了,我还问有没有其他问题了,感觉有点快。
反问环节: ...
目前状态还是「面试中」,速度挺慢的,估计要凉了。
有结果再更新。
附 : 第二题ipv4 编码、解码 C++实现
思路:
int
类型有32位,用8个bit位分别存储ipv4
每个部分。这是现场写的,代码有些冗长,有很多可以优化的地方。
#include <bits/stdc++.h> using namespace std; /* int encode(String ipv4); String decode(int ipv4); 测试输入:"10.0.0.1" */ // 编码 int encode(string ipv4) { int code = 0, n = ipv4.size(), num = 0; vector<int> parts; for (int i = 0; i < n; ++i) { if (ipv4[i] == '.') { parts.push_back(num); num = 0; } else { num = num * 10 + ipv4[i] - '0'; } } parts.push_back(num); for (int i = 0; i < 4; ++i) { code <<= 8; code |= parts[i]; } return code; } // 解码 string decode(int ipv4) { string ans; vector<int> parts; for (int i = 0; i < 4; ++i) { int num = (255) & ipv4; parts.push_back(num); ipv4 >>= 8; } reverse(parts.begin(), parts.end()); ans = to_string(parts[0]); for (int i = 1; i < 4; ++i) { ans += "." + to_string(parts[i]); } return ans; } int main() { int val = encode("10.0.0.1"); cout << decode(val) << endl; return 0; }#如何判断面试是否凉了##我的实习求职记录#