LeetCode - 383. Ransom Note(Hash Table, String, Counting)*

YAMAMAMO·2022년 9월 29일
0

LeetCode

목록 보기
58/100

문제

Given two strings ransomNote and magazine, return true if ransomNote can be constructed by using the letters from magazine and false otherwise.
Each letter in magazine can only be used once in ransomNote.

https://leetcode.com/problems/ransom-note/

Example 1:

Input: ransomNote = "a", magazine = "b"
Output: false

Example 2:

Input: ransomNote = "aa", magazine = "ab"
Output: false

Example 3:

Input: ransomNote = "aa", magazine = "aab"
Output: true

풀이

  • magazine에 있는 문자들로 ransomNote의 단어를 만들 수 있는지 여부 판단 문제.
  • 메거진에 있는 문자들을 key로 HashMap에 문자의 갯수를 저장한다.
class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        
        HashMap<Character, Integer> map = new HashMap<>();
        for(char c : magazine.toCharArray()){
            map.put(c, map.getOrDefault(c,0)+1);
        }
        
        for(char c : ransomNote.toCharArray()){
            if(map.getOrDefault(c,0)<=0) return false;
            map.put(c, map.get(c)-1);
        }
        return true;
        
      
    }
}
profile
안드로이드 개발자

0개의 댓글