"""
# 定义摩斯码字典,其中键为字母,值为对应的摩斯码
morse_code = {
'a': ".-", 'b': "-...", 'c': "-.-.", 'd': "-..", 'e': ".", 'f': "..-.",
'g': "--.", 'h': "....", 'i': "..", 'j': ".---", 'k': "-.-", 'l': ".-..",
'm': "--", 'n': "-.", 'o': "---", 'p': ".--.", 'q': "--.-", 'r': ".-.",
's': "...", 't': "-", 'u': "..-", 'v': "...-", 'w': ".--", 'x': "-..-",
'y': "-.--", 'z': "--.."
}
# 使用集合来保存出现过的摩斯码
unique_morse = set()
# 遍历单词列表
for word in words:
# 初始化摩斯码字符串
morse_word = ''
# 遍历单词中的每个字母
for char in word:
# 拼接摩斯码
morse_word += morse_code[char.lower()]
# 将拼接好的摩斯码添加到集合中
unique_morse.add(morse_word)
# 返回集合中不同摩斯码的数量
return len(unique_morse)
主函数
if name == ‘main’:
# 输入input_words变量值
input_words = [“myelsa”, “my”, “myelsa”, “my”]
# 实例化Solution类
solution = Solution()
# 打印并输出结果
print(“输入为:”, input_words)
print(“输出为:”, solution.uniqueMorseRepresentations(input_words))
4.运行结果:
输入为: [‘myelsa’, ‘my’, ‘myelsa’, ‘my’]
输出为: 2
##### 1-2、VBA:
Rem 自定义函数,功能:摩尔斯电码
Function UniqueMorseRepresentations(words() As Variant) As Long
’ 声明两个对象变量 morseDict 和 uniqueMorse 用于存储摩斯电码字典和唯一摩尔斯电码集合
Dim morseDict As Object, uniqueMorse As Object
’ 声明循环计数器 i 和 j
Dim i As Integer, j As Integer
’ 声明用于遍历数组 words 的变量 word
Dim word As Variant
’ 声明用于构建摩尔斯电码字符串的变量 morseWord 和 char
Dim morseWord As String, char As String
' 定义摩斯电码常量数组
Const morseCode As String = ".- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ..- ...- .-- -..- -.-- --.."
' 定义字母常量数组
Const letters As String = "abcdefghijklmnopqrstuvwxyz"
' 创建一个摩斯电码字典对象
Set morseDict = CreateObject("Scripting.Dictionary")
' 遍历 letters 字符串,为每一个字母创建摩斯电码条目
For i = 1 To Len(letters)
' 将字母和对应的摩尔斯电码添加到字典中
morseDict.Add mid(letters, i, 1), mid(morseCode, i * 3 - 2, 3)
Next i
' 创建一个用于存储唯一摩尔斯电码的对象
Set uniqueMorse = CreateObject("Scripting.Dictionary")
' 遍历 words 数组中的每个单词
For Each word In words
' 初始化摩尔斯电码字符串为空
morseWord = ""
' 遍历单词中的每个字符
For j = 1 To Len(word)
' 获取当前字符的小写形式
char = LCase(mid(word, j, 1))
' 检查字符是否在摩斯电码字典中
If morseDict.Exists(char) Then
' 将当前字符的摩斯电码追加到 morseWord 字符串中
morseWord = morseWord & morseDict(char)
End If
Next j
' 检查 morseWord 是否已经在 uniqueMorse 集合中存在
If Not uniqueMorse.Exists(morseWord) Then
' 如果不存在,则添加到 uniqueMorse 集合中
uniqueMorse.Add morseWord, Nothing
End If
Next word
' 返回 uniqueMorse 集合中的项目数量,即唯一摩尔斯电码的数量
UniqueMorseRepresentations = uniqueMorse.count
End Function
Rem 执行程序,功能:调用自定义函数UniqueMorseRepresentations,在立即窗口中输出结果
Sub TestRun()
’ 声明一个 Variant 类型的数组 input_words 和一个 Long 类型的变量 result
Dim input_words() As Variant
Dim result As Long
' 初始化 input_words 数组并赋值
input_words = Array("myelsa", "my", "myelsa", "my")
' 调用 UniqueMorseRepresentations 函数,并将结果赋值给 result
result = UniqueMorseRepresentations(input_words)
' 使用 Debug.Print 输出结果
Debug.Print "输出为:" & result
End Sub
'结果输出:
'输出为:2
**注意:1-2中的代码需粘贴到你的VBA编辑器中,按F5执行TestRun程序,在立即窗口中输出结果。**
##### 2、相关文章:
**2-1、**[Python-VBA编程500例-023(入门级)]( )")****
**2-2、[Python-VBA编程500例-024(入门级)]( )")**
**2-3、[Python-VBA编程500例-026(入门级)]( )")**
**2-4、[Python-VBA编程500例-027(入门级)]( )")**
##### Myelsa的Python算法之旅(高铁直达):[Myelsa的Python算法之旅(高铁直达)-CSDN博客]( )-CSDN博客")
##### 欢迎访问个人主页:[非风V非雨-CSDN博客]( )
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/59289682d6d67a23fc391656b157b648.png)
![img](https://img-blog.csdnimg.cn/img_convert/4fa476cfe194d62964c3b89598303728.png)
![img](https://img-blog.csdnimg.cn/img_convert/0b5bcd9c687047417f47d0ef4ba05590.png)
![img](https://img-blog.csdnimg.cn/img_convert/2b2280d5aa18f6ca0211c1dc338472af.png)
![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)
![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**
进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**
![](https://img-blog.csdnimg.cn/img_convert/582e342ccdb2ac8696aca8a6fa1a70e8.jpeg)