首页 最新 热门 推荐

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

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

  • 25-03-03 04:43
  • 3060
  • 11152
blog.csdn.net

目录

1、找不同(不限定添加字符):

1-1、Python:

1-2、VBA:

2、相关文章:

Python算法之旅:http://iyenn.com/rec/1699032.html?spm=1001.2014.3001.5502

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

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

        找不同(Find The Difference)(也被称为“找茬”或“差异识别”)是一种训练观察力和注意力的技能,它可以在多个领域中找到实际应用。常见的应用场景有:

1、教育领域:在幼儿园和小学教育中,找不同游戏常被用来帮助孩子们锻炼他们的观察力和专注力;在艺术和设计课程中,学生可能需要找出两幅相似画作中的细微差别,以培养对细节的关注。

2、测试和质量控制:在制造业中,找不同技能用于产品质量检查,确保产品符合预定的标准和规格;在软件测试中,测试人员需要找出新版本软件与旧版本之间的差异,确保所有功能正常工作。

3、法律和调查:在法医学中,专家可能需要比较不同照片或证据以找出关键差异,帮助解决犯罪案件;在审计和财务调查中,找不同技能有助于发现财务报表或记录中的不一致之处。

4、游戏和娱乐:找不同游戏是休闲活动的一种形式,可以在家庭聚会、朋友聚会或在线平台上进行,为人们提供娱乐和放松。

5、广告和市场营销:在广告创意中,找不同游戏或挑战可以用来吸引公众的注意力,增加品牌曝光度;在产品推广中,通过展示产品的新旧版本差异,可以强调产品的升级和改进。

6、科学研究:在生物学中,研究人员可能需要比较不同物种或基因序列的差异,以了解它们的进化关系;在天文学中,科学家通过比较不同时间点的观测数据来寻找宇宙中的变化或新发现。

7、安全和情报分析:在安全监控中,分析师需要识别监控录像中的异常行为或变化;在情报分析中,找不同技能有助于发现情报信息中的不一致之处或隐藏线索。

        总之,找不同这项技能在日常生活和工作中都有广泛的应用,它可以帮助人们更准确地识别差异,提高观察和判断能力。

1、找不同(不限定添加字符):
1-1、Python:
  1. # 1.问题描述:
  2. # 给定字符串str1和str2,字符串str2由随机打乱字符顺序的字符串str1在任意位置添加一个或多个字符生成,找出在str2中添加的字符及所处位置.
  3. # 2.问题示例:
  4. # 输入str1 = "myelsa",str2 = "mwyoenldsearful",依次输出w/1 o/3 n/5 d/7 e/9 r/11 f/12 u/13 l/14.
  5. # 3.代码实现:
  6. class Solution:
  7. # 参数str1: 原始字符串
  8. # 参数str2: 添加字符后的字符串
  9. # 返回值added_chars: 包含添加的字符及其位置的元组列表
  10. def find_the_difference(self, str1, str2):
  11. # 初始化两个指针
  12. i = 0 # str1的指针
  13. j = 0 # str2的指针
  14. # 存储添加的字符及其位置
  15. added_chars = []
  16. # 当两个指针都没有超过各自的字符串长度时
  17. while i < len(str1) and j < len(str2):
  18. # 如果当前字符相等,则两个指针都向前移动
  19. if str1[i] == str2[j]:
  20. i += 1
  21. j += 1
  22. # 如果不相等,说明str2中在当前位置添加了字符
  23. else:
  24. # 将添加的字符及位置添加到列表中
  25. added_chars.append((str2[j], j))
  26. # 只移动str2的指针
  27. j += 1
  28. # 检查str2是否还有剩余字符,如果有,则都是添加的
  29. while j < len(str2):
  30. # 将剩余的字符及位置添加到列表中
  31. added_chars.append((str2[j], j))
  32. j += 1
  33. # 返回str2中所有添加字符的列表
  34. return added_chars
  35. # 主函数
  36. if __name__ == '__main__':
  37. # 对str1/str2两个参数进行赋值
  38. str1 = "myelsa"
  39. str2 = "mwyoenldsearful"
  40. # 实例化Solution类并调用自定义函数
  41. solution = Solution()
  42. added_chars_list = solution.find_the_difference(str1, str2)
  43. # 打印结果
  44. print("原始字符串:", str1)
  45. print("添加字符后的字符串:", str2)
  46. print("输出添加字符/位置:")
  47. for char, pos in added_chars_list:
  48. print(f"{char}/{pos}", end=' ')
  49. # 4.运行结果:
  50. # 原始字符串: myelsa
  51. # 添加字符后的字符串: mwyoenldsearful
  52. # 输出添加字符/位置:
  53. # w/1 o/3 n/5 d/7 e/9 r/11 f/12 u/13 l/14
1-2、VBA:
  1. Rem 自定义函数,功能:找不同(不限定添加字符)
  2. Function FindTheDifference(str1 As String, str2 As String) As Variant
  3. ' 定义两个模拟指针变量i和j,分别用于遍历str1和str2
  4. Dim i As Long
  5. Dim j As Long
  6. ' 定义数组addedChars,用于存储添加的字符及其位置的数组
  7. Dim addedChars() As Variant
  8. ' 定义计数器addedCharsCount,用于记录已添加的字符数量
  9. Dim addedCharsCount As Long
  10. ' 定义临时数组tempArray,用于模拟元组存储单个添加的字符及其位置
  11. Dim tempArray(1 To 2) As Variant
  12. ' 初始化变量和计数器
  13. i = 1
  14. j = 1
  15. addedCharsCount = 0
  16. ' 当两个模拟指针变量值都没有超过各自的字符串长度时
  17. While i <= Len(str1) And j <= Len(str2)
  18. ' 如果当前字符相等,则两个模拟指针变量都向前移动
  19. If mid(str1, i, 1) = mid(str2, j, 1) Then
  20. i = i + 1
  21. j = j + 1
  22. ' 如果不相等,说明str2中在当前位置添加了字符
  23. Else
  24. ' 重新定义数组大小,保留原有数据
  25. ReDim Preserve addedChars(addedCharsCount)
  26. ' 将添加的字符及位置存储到临时数组tempArray中
  27. tempArray(1) = mid(str2, j, 1) ' 字符
  28. tempArray(2) = j ' 位置
  29. ' 将临时数组添加到addedChars数组中
  30. addedChars(addedCharsCount) = tempArray
  31. ' 只移动str2的模拟指针j
  32. j = j + 1
  33. ' 增加已添加的字符数量
  34. addedCharsCount = addedCharsCount + 1
  35. End If
  36. Wend
  37. ' 检查str2是否还有剩余字符,如果有,则都是添加的
  38. While j <= Len(str2)
  39. ' 重新定义数组大小,保留原有数据
  40. ReDim Preserve addedChars(addedCharsCount)
  41. ' 将剩余的字符及位置存储到临时数组tempArray中
  42. tempArray(1) = mid(str2, j, 1) ' 字符
  43. tempArray(2) = j ' 位置
  44. ' 将临时数组添加到addedChars数组中
  45. addedChars(addedCharsCount) = tempArray
  46. ' 移动str2的模拟指针变量j
  47. j = j + 1
  48. ' 增加已添加的字符数量
  49. addedCharsCount = addedCharsCount + 1
  50. Wend
  51. ' 返回str2中所有添加字符的数组
  52. FindTheDifference = addedChars
  53. End Function
  54. Rem 执行过程,功能:调用自定义函数FindTheDifference,在立即窗口中输出结果
  55. Sub TestRun()
  56. Dim str1 As String
  57. Dim str2 As String
  58. Dim addedChars As Variant, addedChars_str As Variant
  59. Dim i As Long
  60. ' 对str1/str2两个参数进行赋值
  61. str1 = "myelsa"
  62. str2 = "mwyoenldsearful"
  63. ' 调用函数
  64. addedChars = FindTheDifference(str1, str2)
  65. ' 打印结果
  66. Debug.Print "原始字符串:" & str1
  67. Debug.Print "添加字符后的字符串:" & str2
  68. Debug.Print "输出添加字符/位置:"
  69. ' 遍历数组并打印结果
  70. For i = LBound(addedChars) To UBound(addedChars)
  71. addedChars_str = addedChars_str + addedChars(i)(1) & "/" & addedChars(i)(2) & " "
  72. Next i
  73. Debug.Print addedChars_str
  74. End Sub
  75. '结果输出:
  76. '原始字符串: myelsa
  77. '添加字符后的字符串: mwyoenldsearful
  78. '输出添加字符/位置:
  79. 'w/2 o/4 n/6 d/8 e/10 r/12 f/13 u/14 l/15

 注意:1-2中的代码需粘贴到你的VBA编辑器中,按F5执行TestRun程序,在立即窗口中输出结果。

2、相关文章:

2-1、Python-VBA编程500例-018(入门级)

2-2、Python-VBA编程500例-019-01(入门级) 

2-3、Python-VBA编程500例-020-01(入门级) 

2-4、Python-VBA编程500例-020-02(入门级)

Python算法之旅:http://iyenn.com/rec/1699032.html?spm=1001.2014.3001.5502
个人主页:非风V非雨-CSDN博客
欢迎志同道合者一起交流学习,我的QQ:94509325/微信:

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

/ 登录

评论记录:

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

分类栏目

后端 (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