乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 70|回复: 0

[编程交流] 将子字符串列表与字符串进行

[复制链接]

13

主题

16

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-30 02:55:16 | 显示全部楼层 |阅读模式
将子字符串列表与字符串进行比较并返回唯一输出的最快方法?


在高层次上:
我有一个永久子字符串的列表,我需要根据它们检查字符串以查看子字符串是否包含在字符串中。我无法修改将针对它们进行检查的字符串。每个字符串只需要匹配一个子字符串,不会有重叠。   
即给定子字符串dog、quartz、wizard、zebra的列表:代码应该返回以下输出
“敏捷的棕色狐狸跳过一条懒惰的狗。” -> 与“狗”比较 -> 返回“1”
“黑色石英狮身人面像,判断我的誓言。” -> 与“石英”比较 -> 返回“2”
“五位拳师快速跳跃。” -> 与“向导”比较 -> 返回“3”
“愚蠢的斑马跳得真快!” -> 与“Zebra”比较 -> 返回“4”
“天哪,我对词典学的快速学习得了奖!” -> 找不到匹配的子字符串 -> 返回“5”
现在,我正在这样做,我认为这是一件非常糟糕的事情:
  1. <font size="4">(defun tagmap(input)
  2.   (setq input (strcase input))
  3.   (COND
  4.     ((/= (vl-string-search "TEST1" input) nil)
  5.       (princ "1"))
  6.     ((/= (vl-string-search "TEST2" input) nil)
  7.       (princ "2"))
  8.         [...]
  9.     ((/= (vl-string-search "TESTN" input) nil)
  10.       (princ "N"))
  11.     (T (princ "String not found"))
  12.   )
  13. )</font>


将来这个列表可能会大大扩展,所以我正在寻找一个更具可扩展性的解决方案。有没有人有更快的方法?

回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 01:29 , Processed in 0.734997 second(s), 54 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表