<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實(shí)戰(zhàn)408:有效單詞縮寫

          共 1813字,需瀏覽 4分鐘

           ·

          2021-10-17 08:47

          算法的重要性,我就不多說了吧,想去大廠,就必須要經(jīng)過基礎(chǔ)知識和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個公眾號后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問題叫做?有效單詞縮寫,我們先來看題面:
          https://leetcode-cn.com/problems/valid-word-abbreviation/

          Given a non-empty string s and an abbreviation abbr, return whether the string matches with the given abbreviation.


          給一個 非空 字符串 s 和一個單詞縮寫 abbr ,判斷這個縮寫是否可以是給定單詞的縮寫。
          字符串 "word" 的所有有效縮寫為:
          ["word", "1ord", "w1rd", "wo1d", "wor1", "2rd", "w2d", "wo2", "1o1d", "1or1", "w1r1", "1o2", "2r1", "3d", "w3", "4"]
          注意單詞 "word" 的所有有效縮寫僅包含以上這些。任何其他的字符串都不是 "word" 的有效縮寫。
          注意:
          假設(shè)字符串 s 僅包含小寫字母且 abbr 只包含小寫字母和數(shù)字。

          示例


          示例 1:
          給定 s = "internationalization", abbr = "i12iz4n":
          函數(shù)返回 true.
          ?
          示例 2:
          給定 s = "apple", abbr = "a2e":
          函數(shù)返回 false.


          解題

          https://blog.csdn.net/qq_29051413/article/details/108846427

          通過示例可知,所謂的縮寫就是對某些子串用子串的長度來代替。
          遍歷 abbr 的每一個字符:
          1、當(dāng)出現(xiàn)帶有前導(dǎo) 0 的數(shù)字,則直接 false,例如:friend 縮寫成 f04d 就是不符合題意的;
          2、abbr 對應(yīng)位置的字符要和 word 一致,例如:word 的縮寫 w2d,其中 d 是第 3 位的字符,兩者的第 3 位的字符應(yīng)該都是 d,否則 false;
          3、縮寫展開后的長度應(yīng)該和原單詞一致,例如,word 長度為 4,縮寫 1or1 展開后長度也是 4,否則 false。

          class?Solution?{
          ????public?boolean?validWordAbbreviation(String word, String abbr)?{
          ????????char[] chars = abbr.toCharArray();
          ????????int?num = 0; // 縮寫中的數(shù)字,不能出現(xiàn)前導(dǎo)0
          ????????int?next = 0; // 遍歷 chars 的指針
          ????????for?(char?c : chars) {
          ????????????// 如果是數(shù)字,則拼接成最后的樣子
          ????????????if?(c >= '0'?&& c <= '9') {
          ????????????????// 前導(dǎo)0數(shù)字不合法
          ????????????????if?(num == 0?&& c == '0') return?false;
          ????????????????num = num * 10?+ (c - '0');
          ????????????????continue;
          ????????????}

          ????????????next = next + num; // 更新指針
          ????????????// 如果 next 超出了 word 的長度,說明不是 word 的縮寫
          ????????????// 或者,如果 word 和 abbr 在 next 位置的字符不一致,則說明不是 word 的縮寫
          ????????????if?(next >= word.length() || (word.charAt(next) != c)) {
          ????????????????return?false;
          ????????????}
          ????????????next++;
          ????????????num = 0;
          ????????}
          ????????return?next + num == word.length();
          ????}
          }


          好了,今天的文章就到這里,如果覺得有所收獲,請順手點(diǎn)個在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動力 。

          上期推文:

          LeetCode1-400題匯總,希望對你有點(diǎn)幫助!

          LeetCode刷題實(shí)戰(zhàn)401:二進(jìn)制手表

          LeetCode刷題實(shí)戰(zhàn)402:移掉 K 位數(shù)字

          LeetCode刷題實(shí)戰(zhàn)403:青蛙過河

          LeetCode刷題實(shí)戰(zhàn)404:左葉子之和

          LeetCode刷題實(shí)戰(zhàn)405:數(shù)字轉(zhuǎn)換為十六進(jìn)制數(shù)

          LeetCode刷題實(shí)戰(zhàn)406:根據(jù)身高重建隊列

          LeetCode刷題實(shí)戰(zhàn)407:接雨水 II


          瀏覽 53
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产一級A片免费看 | 中文字幕第五页 | 亚州最大操B网站 | 十八禁成人黄网站 | 五月丁香综合 |