leetcode93-复原IP地址(回溯-分割字符串)

 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值