IP地址判断是否合法
bool isValid(string& s, int start, int end){
//if(start > end){
// return false;
//}
if(s[start] == '0' && start != end){
return false;
}
int num = 0;
for(int i = start; i <= end; i++){
if(s[i] > '9' || s[i] < '0'){
return false;
}
num = num*10 + s[i] - '0';
if(num > 255){
return false;
}
}
cout << start << " " << end << endl;
return true;
}
如果没有第一个if的判断,leetcode上的提交会不通过
未通过测试案例:"101023"
此时打印日志
0 0
2 2
4 4
4 5
7 8
1.0.10.23
4 6
8 8
1.0.102.3
0 1
3 3
5 5
7 8
10.1.0.23
3 4
6 6
8 8
10.10.2.3
6 7
9 8
10.10.23.
3 5
7 7
9 8
10.102.3.
0 2
4 4
6 6
8 8
101.0.2.3
6 7
9 8
101.0.23.
添加第一个if 的判断后,可以通过
输出日志
0 0
2 2
4 4
4 5
7 8
1.0.10.23
4 6
8 8
1.0.102.3
0 1
3 3
5 5
7 8
10.1.0.23
3 4
6 6
8 8
10.10.2.3
6 7
3 5
7 7
0 2
4 4
6 6
8 8
101.0.2.3
6 7