LintCode(容易)55.比较字符串
来源:互联网 发布:豆浆机上的单片机 编辑:程序博客网 时间:2024/06/02 16:40
需注意的点:
1.字符串B中可能含有多个重复的大写字母,则A中此大写字母的个数至少要大于B中的个数。
目前的思路:
先把字符串A中26个字母的个数统计出来,按序存储在一个string型a里面,B同理,存储在string型b里面,然后直接比较a>b,true则包含。
bug1:
主要错误点:(一些小错点忽略)string a 应该为string a(26,’0’);
bug2:
原因是:比如A(“ABCDEFG”),B(“ACC”),则a就是(“111…”)26个1,b就是(”102000…“),就产生了判断错误。
bug3:
原因:这里主要是 for (int i = 0; i < b.size(); i++){
if (b[i] == 48) b[i] = b.size();
}
中b[i] = b.size();没有执行成功,于是我做了以下小实验:
int main() { string b("10200"); for (int i = 0; i < b.size(); i++){ if (b[i] == '0') { b[i] = b.size(); cout << b[i]; } } system("Pause"); }
输出结果:
改正:b[i] = b.size()+’0’;
bug3:
bug4:
bug5:
原因:不能超过9,超过以后按Ascii码计算,但是后来我发现这个没关系。
之前的思路的漏洞:
1.B有可能是空字符串
2.A(“ABCDEFG”),B(“ACC”),则a就是(“111…”)26个1,b就是(”102000…“),就产生了判断错误。
改正:
for (int i = 0; i < B.size(); i++)//之前的小bug:i<b.size(); if (b[i] == '0') b[i] = a[i]; }
3.A(“ABCDEFG”),B(“BCC”),则a就是(“111…”)26个1,b就是(”002000…“),就产生了判断错误。
所以又改动
for (int i = 0; i < B.size(); i++){
if (a[i]>b[i])a[i] = b[i];
//if (b[i] == '0') b[i] = a[i];
}
- LintCode(容易)55.比较字符串
- LintCode 55. 比较字符串
- LintCode-[容易] 211. 字符串置换
- LintCode-[容易] 211. 字符串置换
- 55.Compare Strings-比较字符串(容易题)
- LintCode(easy)比较字符串(正确版)
- Lintcode—(3)比较字符串
- Lintcode(2)-比较字符串
- LintCode比较字符串
- Lintcode 比较字符串
- lintcode-比较字符串-55
- LintCode 比较字符串
- Lintcode 比较字符串
- LintCode-比较字符串
- lintcode刷题--比较字符串
- LintCode 比较字符串
- Lintcode-比较字符串
- lintcode ----比较字符串
- Valid Palindrome leetcode
- FPGA配置flash
- 静态库和动态库的区别
- 字节对齐 #pragma pack(n)
- web项目发布相关
- LintCode(容易)55.比较字符串
- aba
- caffe手写数字mnist训练测试使用教程
- 位运算
- mediaController 报空指针异常 VideoView 关闭报空指针
- 实战录 | 今天聊聊Nginx反向代理使用
- ccc
- MAC上配置code review
- GridView交替行颜色