目录
Python算法之旅:http://iyenn.com/rec/1699032.html?spm=1001.2014.3001.5502
欢迎志同道合者一起交流学习,我的QQ:94509325/微信
删除字符(Delete Characters)在实际应用中有很多场景,常见的应用场景有:
1、文本编辑和校对:在编写文档、文章或任何形式的文本时,经常需要删除不必要的字符,如多余的空格、标点符号错误或拼写错误,这有助于提升文本的质量和可读性。
2、数据清洗:在数据处理和分析中,数据清洗是一个重要步骤。删除字符可能包括去除数据中的无效字符、特殊符号、空白字符或重复字符,以确保数据的准确性和一致性。
3、文件路径处理:在操作系统中,处理文件路径时可能需要删除某些字符,如非法字符或多余的分隔符,以确保文件路径的正确性和兼容性。
4、URL清理:在构建或处理URL时,删除不必要的字符可以确保URL的有效性和可读性。例如,删除URL中的空格、特殊字符或重复参数。
5、密码安全:在密码管理或安全策略中,有时需要删除密码中的特定字符,以满足安全要求或避免潜在的安全风险。
6、字符串匹配和搜索:在进行字符串匹配或搜索时,删除某些字符可以帮助忽略大小写、标点符号或其他差异,从而提高匹配的准确性。
7、代码优化:在编程中,删除不必要的字符(如注释、空格或换行符)可以优化代码的大小和可读性,特别是在资源受限的环境中。
8、自然语言处理:在自然语言处理任务中,如文本分类、情感分析等,删除停用词(如常见的介词、连词等)可以简化文本,提高处理效率。
这些只是删除字符的一些常见应用场景,实际上,在日常生活和工作的各个领域,删除字符都有着广泛的应用。
1、删除字符:
1-1、Python:
- # 1.问题描述:
- # 给定源字符串source_str和目标字符串target_str,判断通过对源字符串source_str删除一些字符后,使得source_str = target_str.
- # 2.问题示例:
- # 输入source_str = "myelsa",target_str = "mys",通过对source_str进行字符删除处理,若能得到source_str = target_str,则返回True;反之,则返回False.
- # 3.代码实现:
- class Solution:
- def canGetString(self, source_str, target_str):
- """
- 判断字符串source_str中是否包含字符串target_str的所有字符,并且字符的相对顺序保持一致。
- source_str: 源字符串
- target_str: 目标字符串
- 返回值: 如果source_str包含target_str的所有字符且顺序一致则返回True,否则返回False
- """
- # 使用两个指针分别遍历source_str和target_str
- pointer_s = 0 # 指向source_str的指针
- pointer_t = 0 # 指向target_str的指针
- # 当target_str的指针没有遍历完时,持续遍历
- while pointer_t < len(target_str):
- # 在source_str中从当前指针位置开始查找target_str的当前字符
- while pointer_s < len(source_str) and source_str[pointer_s] != target_str[pointer_t]:
- pointer_s += 1
- # 如果source_str遍历完了还没有找到target_str的当前字符,则返回False
- if pointer_s == len(source_str):
- return False
- # 如果找到了,则移动source_str和target_str的指针继续查找下一个字符
- pointer_s += 1
- pointer_t += 1
- # 如果target_str的指针遍历完了,说明source_str包含target_str的所有字符且顺序一致
- return True
- # 主函数
- if __name__ == '__main__':
- # 给定源字符串source_str和目标字符串target_str
- source_str = "myelsa"
- target_str = "mys"
- # 实例化Solution类
- solution = Solution()
- # 打印源字符串source_str和目标字符串target_str
- print("源字符串和目标字符串分别为:", source_str + " 和 " + target_str)
- # 调用canGetString函数,输出最终结果
- print("能否实现:", solution.canGetString(source_str, target_str))
- # 4.运行结果
- # 源字符串和目标字符串分别为: myelsa 和 mys
- # 能否实现: True
1-2、VBA:
- Rem 自定义函数,功能:判断源字符串是否包含目标字符串中的连续字符
- Function CanGetString(sourceStr As String, targetStr As String) As Boolean
- Dim pointerS As Integer ' 源字符串的模拟指针
- Dim pointerT As Integer ' 目标字符串的模拟指针
-
- pointerS = 1 ' VBA中字符串索引从1开始
- pointerT = 1
- ' 当目标字符串的模拟指针未超过其长度时循环
- While pointerT <= Len(targetStr)
- ' 在源字符串中查找与目标字符串当前字符匹配的字符
- While pointerS <= Len(sourceStr) And mid(sourceStr, pointerS, 1) <> mid(targetStr, pointerT, 1)
- pointerS = pointerS + 1 ' 如果不匹配,移动源字符串模拟指针
- Wend
- ' 如果源字符串模拟指针超过其长度,说明无法找到匹配的目标字符串,返回False
- If pointerS > Len(sourceStr) Then
- CanGetString = False
- Exit Function
- End If
- ' 移动源字符串和目标字符串的模拟指针,继续查找下一个字符
- pointerS = pointerS + 1
- pointerT = pointerT + 1
- Wend
- ' 如果循环正常结束,说明目标字符串的所有字符都在源字符串中按顺序出现,返回True
- CanGetString = True
- End Function
- Rem 执行程序,功能:调用自定义函数CanGetString,在立即窗口中输出结果
- Sub TestRun()
- Dim sourceStr As String ' 源字符串
- Dim targetStr As String ' 目标字符串
- Dim result As Boolean ' 存储函数执行结果
-
- sourceStr = "myelsa" ' 设置源字符串
- targetStr = "mys" ' 设置目标字符串
- ' 调用CanGetString函数并获取结果
- result = CanGetString(sourceStr, targetStr)
- ' 在VBA的立即窗口中输出结果
- Debug.Print "源字符串和目标字符串分别为:" & sourceStr & " 和 " & targetStr
- Debug.Print "能否实现: " & IIf(result, "True", "False") ' 使用IIf函数根据结果输出字符串
- End Sub
- '结果输出:
- '源字符串和目标字符串分别为:myelsa 和 mys
- '能否实现: True
注意:1-2中的代码需粘贴到你的VBA编辑器中,按F5执行TestRun程序,在立即窗口中输出结果。
2、相关文章:
Python算法之旅:http://iyenn.com/rec/1699032.html?spm=1001.2014.3001.5502
个人主页:非风V非雨-CSDN博客
欢迎志同道合者一起交流学习,我的QQ:94509325/微信:



评论记录:
回复评论: