企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
804.Unique Morse Code Words Easy 490437FavoriteShare International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows:`"a"`maps to`".-"`,`"b"`maps to`"-..."`,`"c"`maps to`"-.-."`, and so on. For convenience, the full table for the 26 letters of the English alphabet is given below: ~~~ [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."] ~~~ Now, given a list of words, each word can be written as a concatenation of the Morse code of each letter. For example, "cba" can be written as "-.-..--...", (which is the concatenation "-.-." + "-..." + ".-"). We'll call such a concatenation, the transformation of a word. Return the number of different transformations among all words we have. ~~~ Example: Input: words = ["gin", "zen", "gig", "msg"] Output: 2 Explanation: The transformation of each word is: "gin" -> "--...-." "zen" -> "--...-." "gig" -> "--...--." "msg" -> "--...--." There are 2 different transformations, "--...-." and "--...--.". ~~~ **Note:** * The length of`words`will be at most`100`. * Each`words[i]`will have length in range`[1, 12]`. * `words[i]`will only consist of lowercase letters. ``` class Solution { public int uniqueMorseRepresentations(String[] words) { String[] codes = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."}; TreeSet<String> set = new TreeSet<>(); for(String word: words){ StringBuilder res = new StringBuilder(); for(int i = 0 ; i < word.length() ; i ++) res.append(codes[word.charAt(i) - 'a']); set.add(res.toString()); } return set.size(); } } ```