华为oj 判断两个ip是否属于同一子网
来源:互联网 发布:食品erp软件 编辑:程序博客网 时间:2024/06/02 21:12
#include<iostream>#include<string> #include<string.h>#include<stdlib.h> #include<vector>using namespace std;//注意:当字符串为空时,也会返回一个空字符串void split(string& s, vector<string> &ret){size_t last = 0;string delim(".");size_t index=s.find_first_of(delim,last);while (index!=std::string::npos){ret.push_back(s.substr(last,index-last));last=index+1;index=s.find_first_of(delim,last);}if (index-last>0){ret.push_back(s.substr(last,index-last));}}bool getNumVector(string mask,vector<int> &m){vector<string> ret;int tempt;split(mask,ret);if(ret.size() != 4) return false;else{ vector<string>::iterator iter = ret.begin(); for(;iter != ret.end();++iter) { tempt = atoi(iter->c_str()); if(tempt<0||tempt>255) return false; else m.push_back(tempt); }}}bool isSameNet(vector<int> &m,vector<int> &ipnum1,vector<int> &ipnum2){ bool flag = true; int size = 4; vector<int>::iterator iter = m.begin(); vector<int>::iterator ipter1 = ipnum1.begin(); vector<int>::iterator ipter2 = ipnum2.begin(); while(size--) { //cout<<"mask"<<size<<*iter<<endl; //cout<<"ip1"<<size<<*ipter1<<endl; //cout<<"ip2"<<size<<*ipter2<<endl; if(((*iter)&(*ipter1)) == ((*iter)&(*ipter2))) { ++iter; ++ipter1; ++ipter2; } else { flag = false; break; } } return flag;}int checkNetSegment(string mask,string ip1,string ip2){vector<int> m,ipnum1,ipnum2;if(getNumVector(mask,m)&&getNumVector(ip1,ipnum1)&&getNumVector(ip2,ipnum2)){ if(isSameNet(m,ipnum1,ipnum2)) return 0; else return 2;}else return 1;} int main(){int result;string mask,ip1,ip2;while(cin>>mask>>ip1>>ip2)cout<<checkNetSegment(mask,ip1,ip2)<<endl;return 0;}
0 0
- 华为OJ:判断两个IP是否属于同一子网
- 华为oj 判断两个ip是否属于同一子网
- 华为oj:判断两个IP是否属于同一个子网
- 华为oj 判断两个IP是否属于同一子网
- 【华为OJ】【075-判断两个IP是否属于同一子网】
- [华为OJ] 判断两个IP是否属于同一子网
- 【华为OJ】判断两个IP是否属于同一子网
- 华为OJ 初级:判断两个IP是否属于同一子网
- 华为OJ:判断两个IP是否属于同一子网
- 华为OJ判断两个IP是否属于同一子网
- 华为OJ:判断两个IP是否属于同一子网
- 华为OJ--判断两个IP是否属于同一个子网
- 华为oj_判断两个IP是否属于同一子网
- 华为OJ基础篇-判断两个IP是否属于同一子网
- 华为OJ——判断两个IP是否属于同一子网
- 华为OJ——判断两个IP是否属于同一子网
- [华为OJ--C++]075-判断两个IP是否属于同一子网
- 华为OJ——判断两个IP是否属于同一子网
- cheng@Linux之基础--GPIO实验
- 文章中运用到的数学公式
- 小数化分数
- poj 2594 Treasure Exploration 二分匹配
- 计算机视觉与模式识别方面的代码code
- 华为oj 判断两个ip是否属于同一子网
- 欢迎使用CSDN-markdown编辑器
- UIScrollView与UIPageControl+自动滑动的封装
- 数据库常用操作
- scau_数星星(树状数组)
- Qt 自动建立信号-槽关系
- PHP操作sphinx流程
- nginx的操作指令
- C++ Primer 第五版第一章Sales_item.h源码