【String-easy】804. Unique Morse Code Words 摩斯代码

1. 题目原址

https://leetcode.com/problems/unique-morse-code-words/

2. 题目描述

在这里插入图片描述

3. 题目大意

给定摩斯电码的密码,这个密码对应的是26个小写字母,给定一个字符串数组,问这个数组按照摩斯代码转换,能有多少个不同的摩斯代码转换结果。

4. 解题思路

  • 将摩斯代码放到一个26位的字符串数组中,再定义一个HashSet类型的变量,用来存储返回的个数。
  • 使用增强for循环来遍历字符串数组,每一次循环中都定义一个新的StringBuilder 变量。这个变量用来存储每个字符串转换为的摩斯代码。将这个变量放到刚刚定义的hashSet类型的变量中。最后返回这个变量的长度。

5. AC代码

class Solution {
    public int uniqueMorseRepresentations(String[] words) {
        	String [] morseAlphabets = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",
							   ".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",
							   ".--","-..-","-.--","--.."};
	
	Set<String> morseCodes = new HashSet<>();
	for(String word : words)
	{
		StringBuilder sb = new StringBuilder();
		for(char c : word.toCharArray())
		{
			sb.append(morseAlphabets[((int)(c)) - 97]);
		}
		morseCodes.add(sb.toString());
	}

	return morseCodes.size();
    }
}

猜你喜欢

转载自blog.csdn.net/xiaojie_570/article/details/93393517