题目描述:

读入数据string[ ],然后读入一个短字符串。要求查找string[ ]中和短字符串的所有匹配,输出行号、匹配字符串。匹配时不区分大小写,并且可以有一个用中括号表示的模式匹配。如“aa[123]bb”,就是说aa1bb、aa2bb、aa3bb都算匹配。

输入:

输入有多组数据。
每组数据第一行输入n(1<=n<=1000),从第二行开始输入n个字符串(不含空格),接下来输入一个匹配字符串。

输出:

输出匹配到的字符串的行号和该字符串(匹配时不区分大小写)。

样例输入:
4
Aab
a2B
ab
ABB
a[a2b]b
样例输出:
1 Aab
2 a2B
4 ABB
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.BufferedReader;
import java.util.Scanner;class Main
{public static final boolean DEBUG = false;public static boolean check(String a, String b){int start = b.indexOf('[');int end = b.indexOf(']');for (int i = start + 1; i < end; i++) {StringBuilder sb = new StringBuilder();sb.append(b.substring(0, start));sb.append(b.charAt(i));sb.append(b.substring(end + 1));if (a.compareToIgnoreCase(sb.toString()) == 0) return true;}return false;}public static void main(String[] args) throws IOException{Scanner cin;int n;if (DEBUG) {cin = new Scanner(new FileReader("d:\\OJ\\uva_in.txt"));} else {cin = new Scanner(new InputStreamReader(System.in));}while (cin.hasNext()) {n = cin.nextInt();String[] strArr = new String[n];for (int i = 0; i < n; i++) {strArr[i] = cin.next();}String s = cin.next();for (int i = 0; i < n; i++) {if (check(strArr[i], s)) System.out.println((i + 1) + " " + strArr[i]);}}}
}

题目1165:字符串匹配相关推荐

  1. C语言-字符串匹配题目

    题目描述 对于字符串s和t,若t是s子串,返回t在s中的位置(t的首字符在s中对应的下标),否则返回-1. 字符串最大长度为1000 输入 第一行给定字符串s 第二行给定字符串t 输出 t是s的子串, ...

  2. hdu4847:Wow! Such Doge!(字符串匹配)

    题目:hdu4847:Wow! Such Doge! 题目大意:在给出的段落里面找出"doge"出现的次数.大写和小写都能够. 解题思路:字符串匹配问题,能够在之前将字母都转换成统 ...

  3. 串结构练习——字符串匹配

    串结构练习--字符串匹配 题目描述 给定两个字符串string1和string2,判断string2是否为string1的子串. 输入 输入包含多组数据,每组测试数据包含两行,第一行代表string1 ...

  4. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)...

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  5. 【快乐水题】686. 重复叠加字符串匹配

    原题: 力扣链接:686. 重复叠加字符串匹配 题目简述: 给定两个字符串 a 和 b,寻找重复叠加字符串 a 的最小次数,使得字符串 b 成为叠加后的字符串 a 的子串,如果不存在则返回 -1. 注 ...

  6. Hash——字符串匹配(求s1在s2中出现的次数)

    题目描述: 这是一道模板题. 给定一个字符串 A 和一个字符串 B ,求 B 在 A  中的出现次数.A 和 B中的字符均为英语大写字母. 求A 在 B 中出现了几次.(可重叠) 样例输入: 3 BA ...

  7. 数据结构与算法 / 字符串匹配 / BF、PK 算法

    零.前言 为了下面便于说明,先定义两个名词,分别是主串和模式串.在字符串 A 中查找字符串 B,则 A 为主串,B 为模式串. 假设,主串中字符数量为 L1,模式串的字符数量为 L2 . 一.BF 算 ...

  8. 字符串匹配(多模式匹配篇)

    字符串匹配(多模式匹配篇) 摘要: 问题的提出:众所周知,KMP算法在O(n)的时间中solve单模式串匹配问题.但怎样solve多模式串匹配问题呢? Solve:本文用简要记叙了使用trie树,tr ...

  9. POJ 3461 字符串匹配(KMP / 哈希(有推导))

    文章目录 1. 题目 1.1 题目链接 1.2 题目大意 2. Accepted代码 2.1 KMP解法 2.2 哈希法(有推导过程) 1. 题目 1.1 题目链接 http://poj.org/pr ...

  10. [KMP]一本通(http://ybt.ssoier.cn:8088) 1698:字符串匹配

    字符串匹配 [题目描述] 对于一个字符集大小为C的字符串pp,可以将任意两个字符在p中的位置进行互换,例如p=12321,交换1.21.2得到21312,交换1.4得到42324,交换可以进行任意次. ...

最新文章

  1. 读取Node.js中的环境变量
  2. 团队项目博客检查结果汇总
  3. mysql 排除另一表_MYSQL 两表 排除 重复记录
  4. Qt的信号槽机制介绍(含Qt5与Qt4的差异对比)
  5. 草稿 爬虫-访问登陆可见的页面-请求时带上cookie数据
  6. anaconda新建python文件_PyCharm+cmd中使用Anaconda 与 新建Python环境(Windows)
  7. Cocos Creator 你不知道的细节
  8. [转载] Python pep8编码规范
  9. 5.3bash编程初步
  10. struts2中action手动获取參数
  11. 网易邮箱账号注册twitter开发者api权限,无法收到确认邮件
  12. 学习CentOS6这一篇就够了
  13. mac升级python版本_Mac上python如何升级?
  14. Android 仿微信语音聊天,flutter项目结构
  15. A40i使用笔记:QT使用alsa采集音频pcm信息
  16. 一键将kafka,zookeeper安装为windows服务
  17. 玩游戏用什么轴的机械键盘好_机械键盘吃鸡用什么轴好?玩绝地求生机械键盘键轴推荐...
  18. 解决Dmaven.multiModuleProjectDirectory system propery is not set. Check M2_HOME错误
  19. 从零开始的DIY智能家居 - 基于 ESP32 的智能水浊度传感器
  20. 周三我们上英语计算机和音乐,五年级英语(四)根据汉语意思完成句子.pdf

热门文章

  1. 自学python数据分析要多久-如果只有1小时学Python,看这篇就够了
  2. 用python绘制柱状图标题-使用Python绘制柱形竞赛图
  3. python代码写完怎么运行-教你如何编写、保存与运行 Python 程序
  4. 电脑安装python步骤-windows10系统安装python的详细步骤
  5. python谁的课比较好-【年度系列】2018年学习Python最好的5门课程
  6. python爬虫原理-python学习之python爬虫原理
  7. python3入门教程-python3入门教程之基本数据类型(一)
  8. python绘制柱形图-Python openpyxl Excel绘制柱形图
  9. python3.8.5 应用程序无法启动-macos python3.8.5 打开摄像头问题
  10. python语言用途-python编程语言有什么用途