2.【Java/Python】比較兩個(gè)字符串A和B,確定A中是否包含B中所有的字符。字符串A和B中的字符都是大寫字母

【題目】

比較兩個(gè)字符串A和B,確定A中是否包含B中所有的字符。字符串A和B中的字符都是大寫字母
樣例
給出 A = "ABCD" B = "ACD",返回 true
給出 A = "ABCD" B = "AABC", 返回 false

【分析】

實(shí)質(zhì)上利用的是哈希表的思想。只有大寫字母,一共26個(gè),遍歷A的時(shí)候,往里面壓,遍歷B的時(shí)候,往外邊彈,如果不夠彈,則不包含

【思路一】

定義一個(gè)大小為26的數(shù)組(因?yàn)榇髮懽帜赣?6個(gè)),遍歷字符串A,將字符串A中出現(xiàn)的字符記錄到數(shù)組中,出現(xiàn)一次加1;遍歷字符串B,將出現(xiàn)的字符記錄到數(shù)組中,出現(xiàn)一次減1。如果字符串B中的字符位置的數(shù)組大小小于0則字符串B不包含于字符串A。

【思路二】
【Java代碼 思路一】
public class Solution {
    /**
     * @param A : A string includes Upper Case letters
     * @param B : A string includes Upper Case letter
     * @return :  if string A contains all of the characters in B return true else return false
     */
    public boolean compareStrings(String A, String B) {
        // write your code here
        //利用哈希表的算法定義數(shù)組,因?yàn)樽址谴髮懽帜?,所以?shù)組大小為26.
        int[] index = new int[26];
        //將字符串A中的字符出現(xiàn)個(gè)數(shù)記錄在數(shù)組中
        for(int i = 0; i < A.length(); i++){
            index[A.charAt(i) - 'A']++;
        }
        //遍歷字符串B
        for(int j = 0; j < B.length(); j++){
            index[B.charAt(j) - 'A']--;
            //如果該位置的大小小于0則代表在B.charAt(j)在字符串B中出現(xiàn)的次數(shù)大于在A中出現(xiàn)的次數(shù)
            if(index[B.charAt(j) - 'A'] < 0)
                return false;
        }
        return true;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,682評(píng)論 0 4
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,604評(píng)論 19 139
  • 一天的開(kāi)始,是從聽(tīng)覺(jué)的復(fù)蘇開(kāi)始的。 每天我最先感知到的都是廚房里的豆?jié){機(jī)的聲音,這時(shí)候我還沒(méi)有睜眼,世界在我眼前還...
    凱里木閱讀 227評(píng)論 1 1
  • 你不能左右天氣,但你可以改變心情。正如你不能延伸生命的長(zhǎng)度,但你可以決定生命的寬度!朋友,你已想好了嗎?該怎樣去拓...
    星宇陶閱讀 187評(píng)論 0 5
  • 年齡越大,越覺(jué)得時(shí)間過(guò)的飛快。小時(shí)覺(jué)得如蝸牛般緩慢移動(dòng)的時(shí)間,現(xiàn)在仿佛也坐上了火箭。 匆匆的,皺紋爬上了父母的眉眼...
    紅眼睛兔子閱讀 260評(píng)論 0 0

友情鏈接更多精彩內(nèi)容