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.

这题意思不大,不会面到

class Solution {
    public int uniqueMorseRepresentations(String[] words) {
        if(words == null || words.length == 0)
            return 0;

        String[] abc = new String[] {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
        HashSet<String> set = new HashSet<String>();

        for(String word: words) {
            StringBuilder sb = new StringBuilder();
            for(int i = 0; i < word.length(); i++) {
                sb.append(abc[word.charAt(i) - 'a']);
            }

            set.add(sb.toString());
        }

        return set.size();
    }
}

results matching ""

    No results matching ""