使用字符串分词器从列表中精准查找指定两个数字的技术问题
解决独立分词查找25和55的问题
我来帮你搞定这个图书馆购书价格的检查需求!核心要求很明确:必须确认25和55都作为独立的购书价格项存在(不能是其他数字的一部分,比如566里的55、325里的25都不算数),满足条件输出both,否则输出no。
问题根源
之前的代码大概率是直接用了字符串包含判断(比如"25" in input_str),这种方式会误匹配到其他数字的子串,没法区分独立分词和嵌入的子数字。
正确解决方案思路
- 把输入的价格字符串按空格分割成独立的元素列表,每个元素就是单独的购书价格项
- 精确检查
"25"和"55"是否都在这个列表里 - 根据检查结果输出对应内容
代码示例(Python)
# 示例输入的购书价格字符串 price_input = "52 98 55 86 42 25 87 566 56 843" # 按空格分割成独立的价格项列表 price_items = price_input.split() # 检查两个目标数字是否都作为独立项存在 if "25" in price_items and "55" in price_items: print("both") else: print("no")
测试验证
- 针对示例输入,分割后的列表包含
"25"和"55",输出both - 如果输入是
"556 25",分割后只有"556"和"25",没有独立的"55",输出no - 如果输入是
"25 355",分割后没有独立的"55",输出no - 如果只存在其中一个数字(比如
"55 100"),输出no
这个方法完全规避了子串匹配的问题,因为split()之后每个元素都是单独的价格项,我们做的是精确匹配,完美符合你的需求。
内容的提问来源于stack exchange,提问作者hay2009
相关产品推荐
相关产品推荐

