国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

1657. 確定兩個(gè)字符串是否接近

這篇具有很好參考價(jià)值的文章主要介紹了1657. 確定兩個(gè)字符串是否接近。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1657. 確定兩個(gè)字符串是否接近(面試題打卡/中等)

來(lái)源:力扣(LeetCode)
鏈接:https://leetcode.cn/problems/determine-if-two-strings-are-close

題干:

如果可以使用以下操作從一個(gè)字符串得到另一個(gè)字符串,則認(rèn)為兩個(gè)字符串 接近 :

操作 1:交換任意兩個(gè) 現(xiàn)有 字符。
例如,abcde -> aecdb
操作 2:將一個(gè) 現(xiàn)有 字符的每次出現(xiàn)轉(zhuǎn)換為另一個(gè) 現(xiàn)有 字符,并對(duì)另一個(gè)字符執(zhí)行相同的操作。
例如,aacabb -> bbcbaa(所有 a 轉(zhuǎn)化為 b ,而所有的 b 轉(zhuǎn)換為 a )
你可以根據(jù)需要對(duì)任意一個(gè)字符串多次使用這兩種操作。

給你兩個(gè)字符串,word1 和 word2 。如果 word1 和 word2 接近 ,就返回 true ;否則,返回 false 。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-566717.html

提示:
  • 1 <= word1.length, word2.length <= 105
  • word1word2 僅包含小寫(xiě)英文字母
示例:
輸入:word1 = "abc", word2 = "bca"
輸出:true
解釋?zhuān)?span id="n5n3t3z"    class="token number">2 次操作從 word1 獲得 word2 。
執(zhí)行操作 1"abc" -> "acb"
執(zhí)行操作 1"acb" -> "bca"

輸入:word1 = "a", word2 = "aa"
輸出:false
解釋?zhuān)翰还軋?zhí)行多少次操作,都無(wú)法從 word1 得到 word2 ,反之亦然。

輸入:word1 = "cabbba", word2 = "abbccc"
輸出:true
解釋?zhuān)?span id="n5n3t3z"    class="token number">3 次操作從 word1 獲得 word2 。
執(zhí)行操作 1"cabbba" -> "caabbb"
執(zhí)行操作 2"caabbb" -> "baaccc"
執(zhí)行操作 2"baaccc" -> "abbccc"

輸入:word1 = "cabbba", word2 = "aabbss"
輸出:false
解釋?zhuān)翰还軋?zhí)行多少次操作,都無(wú)法從 word1 得到 word2 ,反之亦然。
題解:
  • 先判斷長(zhǎng)度,長(zhǎng)度不一樣,肯定不接近
  • 用兩數(shù)組記錄字符次數(shù)
  • 判斷兩字符串的字符是否都有
  • 排序后比較次數(shù)(字符交換的情況)
class Solution {
    public static boolean closeStrings(String word1, String word2) {
        int len1 = word1.length(), len2 = word2.length();
        // 長(zhǎng)度不一致,肯定不接近
        if (len1 != len2) return false;
        // 分別記錄字符出現(xiàn)的次數(shù)
        int[] cnt1 = new int[26];
        int[] cnt2 = new int[26];
        for (int i = 0; i < len1; i++) {
            cnt1[word1.charAt(i) - 'a']++;
        }
        for (int i = 0; i < len2; i++) {
            cnt2[word2.charAt(i) - 'a']++;
        }
        // 判斷字符是否都有,一個(gè)有一個(gè)沒(méi)有一定不接近
        for (int i = 0; i < 26; i++) {
           if ((cnt1[i] == 0 && cnt2[i] != 0) || (cnt1[i] != 0 && cnt2[i] == 0)) return false;
        }
        // 排序后判斷次數(shù)(字符交換的情況)
        Arrays.sort(cnt1);
        Arrays.sort(cnt2);
        for (int i = 0; i < 26; i++) {
            if (cnt1[i] != cnt2[i]) return false;
        }
        return true;
    }
}

到了這里,關(guān)于1657. 確定兩個(gè)字符串是否接近的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【LeetCode】583. 兩個(gè)字符串的刪除操作

    【LeetCode】583. 兩個(gè)字符串的刪除操作

    這道題的狀態(tài)定義和 1143. 最長(zhǎng)公共子序列 相同,「定義一個(gè) dp 數(shù)組,其中 dp[i]表示 到位置 i 為止的子序列性質(zhì) ,并不是必須以 i 結(jié)尾」,此時(shí) dp 數(shù)組的最后一位即為題目所求,不需要對(duì)每個(gè)位置進(jìn)行統(tǒng)計(jì)。 狀態(tài)定義 dp[i][j] 表示到 字符串word1 的第 i 個(gè)字符為止、word2 的第

    2024年02月06日
    瀏覽(15)
  • LeetCode | C++ 動(dòng)態(tài)規(guī)劃——583. 兩個(gè)字符串的刪除操作、72. 編輯距離

    583題目鏈接 做法一: 本題和1143.最長(zhǎng)公共子序列基本相同,只要求出兩個(gè)字符串的最長(zhǎng)公共子序列長(zhǎng)度即可,那么除了最長(zhǎng)公共子序列之外的字符都是必須刪除的,最后用兩個(gè)字符串的總長(zhǎng)度減去兩個(gè)最長(zhǎng)公共子序列的長(zhǎng)度就是刪除的最少步數(shù)。 做法二: 本題和115.不同的子

    2024年02月16日
    瀏覽(24)
  • leetcode原題 一次編輯(判定字符串是否只需要一次(或者零次)編輯)

    題目: 字符串有三種編輯操作:插入一個(gè)英文字符、刪除一個(gè)英文字符或者替換一個(gè)英文字符。 給定兩個(gè)字符串,編寫(xiě)一個(gè)函數(shù)判定它們是否只需要一次(或者零次)編輯。 輸入:? first = \\\"pale\\\" second = \\\"ple\\\" 輸出: True 解題思路: 本題可以分為以下幾種情況來(lái)處理: 1. 兩個(gè)字符串長(zhǎng)

    2024年02月13日
    瀏覽(15)
  • Python 是否有字符串“包含”子字符串方法?

    這個(gè)問(wèn)題的答案是社區(qū)的努力。編輯現(xiàn)有答案以改進(jìn)這篇文章。它目前不接受新的答案或交互。 我正在尋找 Python 中的 string.contains 或 string.indexof 方法。 我想要做: 一個(gè)優(yōu)秀的自由職業(yè)者,應(yīng)該有對(duì)需求敏感和精準(zhǔn)需求捕獲的能力,而huntsbot.com提供了這個(gè)機(jī)會(huì) 使用 in opera

    2024年02月12日
    瀏覽(37)
  • Java判斷一個(gè)字符串是否包含某個(gè)字符串

    Java判斷一個(gè)字符串是否包含某個(gè)字符串

    開(kāi)發(fā)過(guò)程中,有時(shí)會(huì)判斷一個(gè)字符串是否包含某個(gè)字符串的操作,這里總結(jié)判斷方法。 方式一:contains()方法 ? ? ? ? 理解:contains() 方法用于判斷字符串中是否包含指定的字符或字符串。(判斷一個(gè)字符串是否包含某個(gè)字符串) ? ? ? ? 語(yǔ)法:public boolean contains(CharSequence

    2024年02月13日
    瀏覽(43)
  • 將兩個(gè)字符串合并為一個(gè)字符串并且輸出(二)

    在這個(gè)示例中,我們定義了三個(gè)字符數(shù)組變量 str1 、 str2 和 result ,分別用于存儲(chǔ)第一個(gè)字符串、第二個(gè)字符串和合并后的結(jié)果字符串。 我們首先使用 strcpy 函數(shù)將第一個(gè)字符串復(fù)制到結(jié)果字符串中,然后使用 strcat 函數(shù)將第二個(gè)字符串追加到結(jié)果字符串的末尾。 最后,我們

    2024年02月12日
    瀏覽(27)
  • Python中判斷字符串是否包含另一個(gè)字符串

    Python中判斷字符串是否包含另一個(gè)字符串 在Python編程中,經(jīng)常需要判斷一個(gè)字符串是否包含另一個(gè)字符串。這在處理文本數(shù)據(jù)或搜索操作時(shí)非常常見(jiàn)。Python提供了幾種方法來(lái)實(shí)現(xiàn)這個(gè)功能,本文將介紹其中的幾種方法,并提供相應(yīng)的源代碼示例。 方法一:使用in 最簡(jiǎn)

    2024年02月07日
    瀏覽(34)
  • golang中如何判斷字符串是否包含另一字符串

    golang中如何判斷字符串是否包含另一字符串 在Go語(yǔ)言中,可以使用strings.Contains()函數(shù)來(lái)判斷一個(gè)字符串是否包含另一個(gè)字符串。該函數(shù)接受兩個(gè)參數(shù):要搜索的字符串和要查找的子字符串,如果子字符串存在于要搜索的字符串中,則返回true,否則返回false。 下面是一個(gè)示例代

    2024年02月09日
    瀏覽(91)
  • 【每日撓頭算法題(2)】壓縮字符串|僅執(zhí)行一次字符串交換能否使兩個(gè)字符串相等

    【每日撓頭算法題(2)】壓縮字符串|僅執(zhí)行一次字符串交換能否使兩個(gè)字符串相等

    點(diǎn)我直達(dá)~ 使用雙指針?lè)?大致過(guò)程如下: 使用雙指針,分別讀(read),寫(xiě)(write)指針,讀指針不斷向后走,當(dāng)read指針走到最后位置處時(shí),或read和read的下一個(gè)位置與當(dāng)前位置不相等時(shí),說(shuō)明該read指針走到了某一串相同子串的最后位置處。 此時(shí)write指針開(kāi)始記錄具體的字符

    2024年02月08日
    瀏覽(30)
  • Java判斷一個(gè)字符串是否包含某個(gè)字符

    Java判斷一個(gè)字符串是否包含某個(gè)字符

    1 問(wèn)題 如何利用Java通過(guò)不同的方法來(lái)判斷一個(gè)字符串是否包含某個(gè)字符。 2 方法 .contains方法 這個(gè)是利用java.lang.String.contains()?方法返回true,當(dāng)且僅當(dāng)此字符串包含指定的char值序列,此方法返回true,如果此字符串包含,否則返回false。 (2).indexOf方法 這一個(gè)是利用java.lang.Str

    2024年02月16日
    瀏覽(112)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包