1.2 字符串包含

題目:給定長字符串a(chǎn)和段字符串b盖淡,如何判斷短字符串中所有字符均在長字符串a(chǎn)中?
示例:
a="ABCD", b="BAD" 返回true狡相;
a="ABCD", b="BCE" 返回false愧膀;
a="ABCD", b="AAA" 返回true;
解法1:排序后輪詢谣光,拿著字符串b中的每一個(gè)字符去字符串a(chǎn)中查詢

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

bool stringcontain(string &a,string &b)
{
    sort(a.begin(),a.end());
    sort(b.begin(),b.end());
    for(int pa =0,pb=0;pb<b.length();) //每次從b中取出一個(gè)字符,在a中進(jìn)行查詢
    {
        //如果還沒查到字符串a(chǎn)的尾部芬为,或者a中目前查到的元素比b中被查詢的元素還小萄金,則把pa后移一位
        while((pa<a.length())&&(a[pa]<b[pb]))
        {
            ++pa;
        }
        //如果pa都到頭了,還沒有找到目標(biāo)元素媚朦,或者a中的元素都比目標(biāo)元素大了(之前排過序氧敢,比如要查字典中B開頭單詞,結(jié)果都翻到C開頭的部分了還沒找到想找的單詞)询张,則說明字符串a(chǎn)中不存在目標(biāo)元素
        if((pa>=a.length())||(a[pa]>b[pb]))
        {return false;}
        ++pb;
    }
    return true;
}
int main(int argc, char *argv[])
{
    string s1="ABCDE";
    string s2="AAAA";
    if(stringcontain(s1,s2))
        cout <<"true"<<endl;
    else
        cout << "false"<<endl;
    return 0;
}

解法2:位運(yùn)算

#include <iostream>
#include <string>
using namespace std;

bool stringcontain(string &a,string &b)
{
    int hash=0;
    for(int i=0;i<a.length();++i)
    {
        hash|=(1<<(a[i]-'A'));
    }
    for(int i=0;i<b.length();++i)
    {
    //依次用字符串b中每一個(gè)字符去與前面得到的hash相與孙乖,如果相與得0說明有不同字符(與運(yùn)算的規(guī)則是“一一得1,其余得0”)份氧,因此如果有不存在的字符就得0
        if((hash &(1 <<(b[i]-'A')))==0)
        {
            return false;
        }
    }
    return true;
}
int main(int argc, char *argv[])
{
    string s1="ABCDE";
    string s2="AASAA";
    if(stringcontain(s1,s2))
        cout <<"true"<<endl;
    else
        cout << "false"<<endl;
    cout << (1<<0x00);
    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末唯袄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蜗帜,更是在濱河造成了極大的恐慌恋拷,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厅缺,死亡現(xiàn)場離奇詭異蔬顾,居然都是意外死亡宴偿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門诀豁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窄刘,“玉大人,你說我怎么就攤上這事舷胜∶浼” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵逞带,是天一觀的道長欺矫。 經(jīng)常有香客問我,道長展氓,這世上最難降的妖魔是什么穆趴? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮遇汞,結(jié)果婚禮上未妹,老公的妹妹穿的比我還像新娘。我一直安慰自己空入,他們只是感情好络它,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著歪赢,像睡著了一般化戳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上埋凯,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天点楼,我揣著相機(jī)與錄音,去河邊找鬼白对。 笑死掠廓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的甩恼。 我是一名探鬼主播蟀瞧,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼条摸!你這毒婦竟也來了悦污?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤屈溉,失蹤者是張志新(化名)和其女友劉穎塞关,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體子巾,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帆赢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年小压,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椰于。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怠益,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瘾婿,到底是詐尸還是另有隱情蜻牢,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布偏陪,位于F島的核電站抢呆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏笛谦。R本人自食惡果不足惜抱虐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饥脑。 院中可真熱鬧恳邀,春花似錦、人聲如沸灶轰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笋颤。三九已至乳附,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伴澄,已是汗流浹背许溅。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秉版,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓茬祷,卻偏偏與公主長得像清焕,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子祭犯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言 最先接觸編程的知識(shí)是在大學(xué)里面沃粗,大學(xué)里面學(xué)了一些基礎(chǔ)的知識(shí)粥惧,c語言,java語言最盅,單片機(jī)的匯編語言等突雪;大學(xué)畢...
    oceanfive閱讀 3,087評(píng)論 0 7
  • 一起惕、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,820評(píng)論 2 16
  • 專業(yè)考題類型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 8,994評(píng)論 0 13
  • 字符串包含 題目描述: 給定兩個(gè)分別由字母組成的字符串A和字符串B,字符串B的長度比字符串A短咏删。請(qǐng)問惹想,如何最快地判...
    MinoyJet閱讀 1,005評(píng)論 0 1
  • 端午節(jié)的正常進(jìn)入方式,嘿嘿攤尸
    Alisa_3eaa閱讀 90評(píng)論 0 0