首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python-VBA编程500例-025(入门级)

  • 25-03-03 04:44
  • 2245
  • 13605
blog.csdn.net

目录

1、摩尔斯电码:

1-1、Python:

1-2、VBA:

2、相关文章:

Python算法之旅:Myelsa的Python算法之旅(高铁直达)-CSDN博客

个人主页:非风V非雨-CSDN博客

欢迎志同道合者一起交流学习,我的QQ:94509325/微信

        摩尔斯电码(Morse Code)是一种用于将字母、数字和标点符号转换为短脉冲(点)和长脉冲(划)的编码系统。它最初用于电报通信,但现在在现实生活中有许多其他应用。常见的应用场景有:

1、紧急救援:摩尔斯编码在紧急救援中起到重要作用。例如,船只或飞机遇到危险时,可以使用摩尔斯编码发送SOS信号,以便其他人员能够及时救援。

2、通信与交流:摩尔斯编码在无线电通信中广泛使用。它被用于海事通信、航空通信以及一些无线电爱好者之间的交流。摩尔斯编码也被用于一些特殊通信需求,如军事通信和山地救援。

3、导航与定位:摩尔斯编码在导航和定位系统中有应用。例如,在灯塔上使用摩尔斯编码的光信号来指示船只安全的航道。此外,一些探险家和登山者在野外活动中使用摩尔斯编码来进行定位和导航。

4、训练与竞赛:摩尔斯编码在一些训练和竞赛中被使用。例如,一些军事组织和无线电爱好者组织会组织摩尔斯编码的速度和准确性竞赛,以提高操作者的技能。

5、艺术与文化:摩尔斯编码也被用于艺术和文化领域。一些艺术家使用摩尔斯编码来创作音乐或视觉艺术作品。此外,一些文化活动中也会使用摩尔斯编码,例如在音乐节或展览中传递特殊信息。

6、密码学:在密码学中,摩尔斯编码可以作为一种简单的替换密码。通过将每个字符替换为对应的摩尔斯编码,可以对信息进行加密。

7、计算机科学:在计算机科学中,摩尔斯编码被用于数据压缩和编码技术。例如,Huffman编码就是一种基于摩尔斯编码思想的压缩算法。

        总的来说,摩尔斯电码在现代社会中仍然具有一定的实际应用价值,并在多个领域发挥着重要作用。同时,随着技术的发展,摩尔斯电码的应用也在不断扩展和创新。

1、摩尔斯电码:
1-1、Python:
  1. # 1.问题描述:
  2. # 摩尔斯电码是一种标准的编码形式,把每个字母映射到一系列点和短划线.
  3. # 给定一个单词列表,每个单词中字符对应的摩尔斯电码按顺序连接起来,从而形成一种摩尔斯电码的组合形式,最终返回所有单词对应摩尔斯电码不同组合形式的数量.
  4. # 2.问题示例:
  5. # 输入words = ["myelsa", "my", "myelsa", "my"],输出2.每个单词的摩尔斯电码组合形式如下:
  6. # myelsa -> ---.--..-......-
  7. # my -> ---.--
  8. # myelsa -> ---.--..-......-
  9. # my -> ---.--
  10. # 也就是说摩尔斯电码的组合只有两种:"---.--..-......-" 和 "---.--"
  11. # 3.代码实现:
  12. class Solution:
  13. def uniqueMorseRepresentations(self, words):
  14. """
  15. 返回给定单词列表的不同摩斯码表示的数量。
  16. 参数words: 单词列表
  17. 返回值: 不同摩斯码表示的数量
  18. """
  19. # 定义摩斯码字典,其中键为字母,值为对应的摩斯码
  20. morse_code = {
  21. 'a': ".-", 'b': "-...", 'c': "-.-.", 'd': "-..", 'e': ".", 'f': "..-.",
  22. 'g': "--.", 'h': "....", 'i': "..", 'j': ".---", 'k': "-.-", 'l': ".-..",
  23. 'm': "--", 'n': "-.", 'o': "---", 'p': ".--.", 'q': "--.-", 'r': ".-.",
  24. 's': "...", 't': "-", 'u': "..-", 'v': "...-", 'w': ".--", 'x': "-..-",
  25. 'y': "-.--", 'z': "--.."
  26. }
  27. # 使用集合来保存出现过的摩斯码
  28. unique_morse = set()
  29. # 遍历单词列表
  30. for word in words:
  31. # 初始化摩斯码字符串
  32. morse_word = ''
  33. # 遍历单词中的每个字母
  34. for char in word:
  35. # 拼接摩斯码
  36. morse_word += morse_code[char.lower()]
  37. # 将拼接好的摩斯码添加到集合中
  38. unique_morse.add(morse_word)
  39. # 返回集合中不同摩斯码的数量
  40. return len(unique_morse)
  41. # 主函数
  42. if __name__ == '__main__':
  43. # 输入input_words变量值
  44. input_words = ["myelsa", "my", "myelsa", "my"]
  45. # 实例化Solution类
  46. solution = Solution()
  47. # 打印并输出结果
  48. print("输入为:", input_words)
  49. print("输出为:", solution.uniqueMorseRepresentations(input_words))
  50. # 4.运行结果:
  51. # 输入为: ['myelsa', 'my', 'myelsa', 'my']
  52. # 输出为: 2
1-2、VBA:
  1. Rem 自定义函数,功能:摩尔斯电码
  2. Function UniqueMorseRepresentations(words() As Variant) As Long
  3. ' 声明两个对象变量 morseDict 和 uniqueMorse 用于存储摩斯电码字典和唯一摩尔斯电码集合
  4. Dim morseDict As Object, uniqueMorse As Object
  5. ' 声明循环计数器 i 和 j
  6. Dim i As Integer, j As Integer
  7. ' 声明用于遍历数组 words 的变量 word
  8. Dim word As Variant
  9. ' 声明用于构建摩尔斯电码字符串的变量 morseWord 和 char
  10. Dim morseWord As String, char As String
  11. ' 定义摩斯电码常量数组
  12. Const morseCode As String = ".- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ..- ...- .-- -..- -.-- --.."
  13. ' 定义字母常量数组
  14. Const letters As String = "abcdefghijklmnopqrstuvwxyz"
  15. ' 创建一个摩斯电码字典对象
  16. Set morseDict = CreateObject("Scripting.Dictionary")
  17. ' 遍历 letters 字符串,为每一个字母创建摩斯电码条目
  18. For i = 1 To Len(letters)
  19. ' 将字母和对应的摩尔斯电码添加到字典中
  20. morseDict.Add mid(letters, i, 1), mid(morseCode, i * 3 - 2, 3)
  21. Next i
  22. ' 创建一个用于存储唯一摩尔斯电码的对象
  23. Set uniqueMorse = CreateObject("Scripting.Dictionary")
  24. ' 遍历 words 数组中的每个单词
  25. For Each word In words
  26. ' 初始化摩尔斯电码字符串为空
  27. morseWord = ""
  28. ' 遍历单词中的每个字符
  29. For j = 1 To Len(word)
  30. ' 获取当前字符的小写形式
  31. char = LCase(mid(word, j, 1))
  32. ' 检查字符是否在摩斯电码字典中
  33. If morseDict.Exists(char) Then
  34. ' 将当前字符的摩斯电码追加到 morseWord 字符串中
  35. morseWord = morseWord & morseDict(char)
  36. End If
  37. Next j
  38. ' 检查 morseWord 是否已经在 uniqueMorse 集合中存在
  39. If Not uniqueMorse.Exists(morseWord) Then
  40. ' 如果不存在,则添加到 uniqueMorse 集合中
  41. uniqueMorse.Add morseWord, Nothing
  42. End If
  43. Next word
  44. ' 返回 uniqueMorse 集合中的项目数量,即唯一摩尔斯电码的数量
  45. UniqueMorseRepresentations = uniqueMorse.count
  46. End Function
  47. Rem 执行程序,功能:调用自定义函数UniqueMorseRepresentations,在立即窗口中输出结果
  48. Sub TestRun()
  49. ' 声明一个 Variant 类型的数组 input_words 和一个 Long 类型的变量 result
  50. Dim input_words() As Variant
  51. Dim result As Long
  52. ' 初始化 input_words 数组并赋值
  53. input_words = Array("myelsa", "my", "myelsa", "my")
  54. ' 调用 UniqueMorseRepresentations 函数,并将结果赋值给 result
  55. result = UniqueMorseRepresentations(input_words)
  56. ' 使用 Debug.Print 输出结果
  57. Debug.Print "输出为:" & result
  58. End Sub
  59. '结果输出:
  60. '输出为: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(入门级) 

Python算法之旅:Myelsa的Python算法之旅(高铁直达)-CSDN博客
个人主页:非风V非雨-CSDN博客
欢迎志同道合者一起交流学习,我的QQ:94509325/微信:

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览60120 人正在系统学习中
遨游码海,我心飞扬
微信名片
注:本文转载自blog.csdn.net的神奇夜光杯的文章"https://blog.csdn.net/ygb_1024/article/details/137148545"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top