LetCode의 Unique Morse Code Words

2028 단어 leetcodemorsecode
LetCode의 Unique Morse Code Words
  • 제목설명
  • 해결 방향
  • C++ contains의 set, 맵
  • 코드 구현
  • 제목 설명
    26           Morse code
    [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
      n           Morse code,         morse code   ,  :
      : words = ["gin", "zen", "gig", "msg"]
      :2
    
      :      100   
    	        1-12
    	        
    

    해결 방향
    변환된morse 코드를 set에 저장하고 set의 길이를 출력하면 됩니다. set에 저장된 데이터는 중복되지 않기 때문입니다
    C++ contains의 set, 맵
  • set set은 질서정연한 집합, unorderedset은 무질서 집합이고 중복되지 않는 데이터를 저장하는mutiset은 질서 집합이며 unorderedset은 무질서한 집합으로 중복된 데이터를 저장할 수 있음
  • 맵맵(질서), unorderedmap(무질서), 반복되지 않는 키 값을 저장하여mutimap(질서), unorderedmap(무질서), 중복된 키 값 쌍 저장 가능
  • 코드 구현
    	int uniqueMorseRepresentations(vector& words) {
    	        vector morse = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
    	        vector::iterator it_morse = morse.begin();
    	        unordered_set result;
    	
    	        for(auto str : words){
    	            string temp = "";
    	            for(auto it = str.cbegin(); it != str.cend(); ++it){
    	                temp += *(it_morse + ((*it) - 97));   
    	            }
    	            result.insert(temp);
    	        }
    	
    	        int count = (int)result.size();
    	        return count;
    	    }
    

    시정을 환영합니다. 전재하시면 출처를 밝혀 주십시오

    좋은 웹페이지 즐겨찾기