<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)242:有效的字母異位詞

          共 2684字,需瀏覽 6分鐘

           ·

          2021-04-23 10:53

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

          今天和大家聊的問題叫做 有效的字母異位詞,我們先來看題面:
          https://leetcode-cn.com/problems/valid-anagram/

          Given two strings s and t, return true if t is an anagram of s, and false otherwise.

          給定兩個(gè)字符串 s 和 t ,編寫一個(gè)函數(shù)來判斷 t 是否是 s 的字母異位詞。

          示例


          示例 1:

          輸入: s = "anagram", t = "nagaram"
          輸出: true

          示例 2:

          輸入: s = "rat", t = "car"
          輸出: false

          說明:
          你可以假設(shè)字符串只包含小寫字母。


          解題


          方法一:哈希映射
          只有小寫字母就可以建一個(gè)長(zhǎng)度為26的數(shù)組,遍歷s和t,一邊把s加進(jìn)去,一邊把t減掉,如果s和t是字母異位詞的話,最后這個(gè)數(shù)組哪一位都為0。


          class Solution {
              public boolean isAnagram(String s, String t) {
                  if(s.length()!=t.length()){
                      return false;
                  }
                  int[] zi=new int[26];
                  for(int i=0;i<s.length();i++){
                      zi[s.charAt(i)-'a']++;
                      zi[t.charAt(i)-'a']--;
                  }
                  for(int i=0;i<26;i++){
                      if(zi[i]!=0){
                          return false;
                      }
                  }
                  return true;
              }
          }


          方法二:排序

          進(jìn)行比較是否相同。不過再這個(gè)之前,可以先判斷兩個(gè)字符串長(zhǎng)度是否相同,如果不同,可以直接返回false。

          class Solution {
              public boolean isAnagram(String s, String t) {
                  if(s.length()!=t.length()){
                      return false;
                  }
                  char[] sc=s.toCharArray();
                  char[] tc=t.toCharArray();
                  Arrays.sort(sc);
                  Arrays.sort(tc);
                  return Arrays.equals(sc,tc);
              }
          }



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

          上期推文:

          LeetCode1-240題匯總,希望對(duì)你有點(diǎn)幫助!
          LeetCode刷題實(shí)戰(zhàn)241:為運(yùn)算表達(dá)式設(shè)計(jì)優(yōu)先級(jí)

          瀏覽 48
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  超碰99在线免费观看 | 日韩精品综合 | 我去也最新无码 | 亚洲日韩理论 | 日韩欧美午夜成人无码 |