給定以長字符串a(chǎn)和以短字符串b麦锯,假設(shè)輸入的字符串只包含大寫英文字母:如何快速的判斷出短字符串b中的所有字符是否都在長字符串a(chǎn)中?
方法一:排序后查找
一般直接想到的方法時蠻力查找雳刺,但是這種方法會有多次重復(fù)查找盔性,效率較低,接著想到的就是先排序再查找劲妙,減少一些重復(fù)的查找
排序后湃鹊,只要發(fā)現(xiàn)B String中有一個字符不能在A String中找到,就可以判定結(jié)果為不包含
排序算法可以自由選擇是趴,這里選擇冒泡排序涛舍,這里需要注意的是兩層循環(huán)的次數(shù)
方法二:位運算查找
比排序后查找更好的辦法是去除排序的過程,因為這個題目只要求大寫的英文字母唆途,所以可以使用散列表的形式將26個字母映射到一個固定的值上富雅,比如位運算