需注意的點:
1.字串b中可能含有多個重複的大寫字母,則a中此大寫字母的個數至少要大於b中的個數。
目前的思路:
先把字串a中26個字母的個數統計出來,按序儲存在乙個string型a裡面,b同理,儲存在string型b裡面,然後直接比較a>b,true則包含。
主要錯誤點:(一些小錯點忽略)string a 應該為string a(26,』0』);
原因是:比如a(「abcdefg」),b(「acc」),則a就是(「111…」)26個1,b就是(」102000…「),就產生了判斷錯誤。
原因:這裡主要是
for (int i = 0; i < b.size(); i++)
中b[i] = b.size();沒有執行成功,於是我做了以下小實驗:
int main()
}system("pause");
}
輸出結果:
改正:b[i] = b.size()+』0』;
原因:不能超過9,超過以後按ascii碼計算,但是後來我發現這個沒關係。
之前的思路的漏洞:
1.b有可能是空字串
2.a(「abcdefg」),b(「acc」),則a就是(「111…」)26個1,b就是(」102000…「),就產生了判斷錯誤。
改正:
for (int i = 0; i < b.size(); i++)//之前的小bug:iif (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++)
LintCode 55 比較字串
問題描述比較兩個字串a和b,確定a中是否包含b中所有的字元。字串a和b中的字元都是 大寫字母 注意事項 在 a 中出現的 b 字串裡的字元不需要連續或者有序。樣例 給出 a abcd b acd 返回 true 給出 a abcd b aabc 返回 false 問題分析根據樣例可知,要在a中找到b...
LintCode 容易)二進位制求和
class solution 計算多出的部位 for w 1 w if answer 0 0 0 return answer vc版見project 二進位制求和。總結 1.string裡面的是字元,輸出的時候可以正確輸出數值,但是當利用其中字元型數字計算時,用到的將是它的ascii碼,要想得到st...
5 5this關鍵字(二)
乙個類可以例項化出若干個物件,這些物件都可以呼叫類中提供的方法,n那麼對於當前正在訪問類中方法的物件就可以稱為當前物件,而this就可以描述出這種當前物件的概念。範例 觀察當前物件 public class eighteight a public class eighteight b 主類 com....