难以复现的bug才是最麻烦的bug

输出指定长度子串

http://www.nowcoder.com/questionTerminal/f7500a858bde41108f01286f57f554f3

一、0.8的代码

#include<bits/stdc++.h>
using namespace std;

int  main()
{
    string str;
    while(cin>>str)
    {
        int n;
        cin>>n;
        int len=str.size();
        if( n>len || n<0 )
        {
            cout<<"-1"<<endl;
        }

        if( 0==n )
        {
            break;
        }

        for(int i=0; i<=(len-n); ++i)
        {
            string temp;
            temp=str.substr(i,n);
            if( i!=(len-n) )
            {
                cout<<temp<<" ";
            }
            else
            {
                cout<<temp<<endl;
            }

        }
    }
}
运行错误:请检查是否存在数组、列表等越界非法访问,内存非法访问等情况
case通过率为80.00%
terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::substr: __pos (which is 7) > this->size() (which is 6)

二、解决bug

  • 上面,好像逻辑OK,但是越界了,原因是,无论n>0还是n<len后面还会使用substr
  • 这个bug太难复现了
#include<bits/stdc++.h>
using namespace std;

int  main()
{
    string str;
    while(cin>>str)
    {
        int n;
        cin>>n;
        int len=str.size();
        if( n>len || n<0 )
        {
            cout<<"-1"<<endl;
        }
        else if( 0==n )
        {
            break;
        }
        else
        {
            for(int i=0; i<=(len-n); ++i)
            {
                string temp;
                temp=str.substr(i,n);
                if( i!=(len-n) )
                {
                    cout<<temp<<" ";
                }
                else
                {
                    cout<<temp<<endl;
                }
            }

        }

    }
}
全部评论

相关推荐

03-10 11:23
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
4184次浏览 33人参与
# 你的实习产出是真实的还是包装的? #
980次浏览 25人参与
# 巨人网络春招 #
11131次浏览 221人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
6833次浏览 35人参与
# 简历第一个项目做什么 #
31213次浏览 311人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186290次浏览 1113人参与
# 米连集团26产品管培生项目 #
3678次浏览 162人参与
# 面试紧张时你会有什么表现? #
30294次浏览 188人参与
# 简历中的项目经历要怎么写? #
309273次浏览 4145人参与
# 网易游戏笔试 #
6299次浏览 83人参与
# 职能管理面试记录 #
10669次浏览 59人参与
# 把自己当AI,现在最消耗你token的问题是什么? #
6795次浏览 154人参与
# 从哪些方向判断这个offer值不值得去? #
56685次浏览 357人参与
# 腾讯音乐求职进展汇总 #
160374次浏览 1105人参与
# 小红书求职进展汇总 #
226823次浏览 1356人参与
# AI时代,哪些岗位最容易被淘汰 #
62226次浏览 723人参与
# 你怎么看待AI面试 #
179177次浏览 1160人参与
# 正在春招的你,也参与了去年秋招吗? #
362424次浏览 2631人参与
# 你的房租占工资的比例是多少? #
92118次浏览 896人参与
# 机械求职避坑tips #
94389次浏览 567人参与
# 校招笔试 #
465564次浏览 2948人参与
# 面试官最爱问的 AI 问题是...... #
26974次浏览 833人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务