2023年9月4日 星期一

【LeetCode】【Kotlin】 242. Valid Anagram (String)


方法一 : 先將字串排序,再比對兩個字串是否相同



class Solution {
    fun isAnagram(s: String, t: String): Boolean {
        val sortedS = s.toCharArray().sorted().joinToString("")
        //println(sortedS)
        val sortedT = t.toCharArray().sorted().joinToString("")
        //println(sortedT)
        return sortedS==sortedT
    }
}

方法二 : 儲存 Char 出現次數於 Map




  class Solution {
      fun isAnagram(s: String, t: String): Boolean {
          var hashMap : MutableMap =  mutableMapOf()
          for (x in s.toCharArray()){
              if(hashMap[x] != null){
                  hashMap[x] = hashMap[x]!!  + 1;
              }else{
                  hashMap[x] = 1
              }
          }
          for (x in t.toCharArray()){
              if(hashMap[x]!=null){
                  hashMap[x] = hashMap[x]!! - 1;
              }else{
                  hashMap[x] = 1
              }
          }

          hashMap.forEach{
              if (it.value != 0) return false
          }
          return true
      }
  }

方法三 : 儲存 Char 出現次數於 Array




  class Solution {
    fun isAnagram(s: String, t: String): Boolean {
        var count : IntArray =  IntArray(26)
        for (x in s.toCharArray()){
            count[x-'a']++
        }
        for (x in t.toCharArray()){
            count[x-'a']--
        }

        for(i in 0..25){
            if (count[i] != 0) return false
        }
        return true
    }
}

0 comments:

張貼留言