看了你的讲解很有启发,不过方法一好像有些问题,int ans=0;int vis[12]={0};string str;这三个作为全局变量能够通过测试,但是作为局部变量就会出错。经过调试发现int num=(int)str[i];中num得到的是0-9对应的ascall码,数值都在48-57之间。上面数组作为局部变量时因为vis[48-57]的位置未初始化为0,所以不能通过测试,而数组作为全局变量时48-57的位置会自动初始化为0,即使数组下标错误也能得到正确结果。改良的方法是(int)str[i]; int num = str[i] - '0';将num由ascall码转化为对应的字符。
4

相关推荐

喜欢飞来飞去的雪碧在刷代码:可以试一试字节
点赞 评论 收藏
分享
牛客848095834号:举报了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务