201409-3 字符串匹配
来源:互联网 发布:做流程图的软件 编辑:程序博客网 时间:2024/05/17 01:08
问题描述
给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。
输入格式
输入的第一行包含一个字符串S,由大小写英文字母组成。
第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。
第三行包含一个整数n,表示给出的文字的行数。
接下来n行,每行包含一个字符串,字符串由大小写英文字母组成,不含空格和其他字符。
第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。
第三行包含一个整数n,表示给出的文字的行数。
接下来n行,每行包含一个字符串,字符串由大小写英文字母组成,不含空格和其他字符。
输出格式
输出多行,每行包含一个字符串,按出现的顺序依次给出那些包含了字符串S的行。
样例输入
Hello
1
5
HelloWorld
HiHiHelloHiHi
GrepIsAGreatTool
HELLO
HELLOisNOTHello
1
5
HelloWorld
HiHiHelloHiHi
GrepIsAGreatTool
HELLO
HELLOisNOTHello
样例输出
HelloWorld
HiHiHelloHiHi
HELLOisNOTHello
HiHiHelloHiHi
HELLOisNOTHello
样例说明
在上面的样例中,第四个字符串虽然也是Hello,但是大小写不正确。如果将输入的第二行改为0,则第四个字符串应该输出。
评测用例规模与约定
1<=n<=100,每个字符串的长度不超过100。
题解:
字符串处理。
代码:
#include <cstdio>#include <cstring>#include <iostream>using namespace std;int main(){ int n, tag, pos; string s, p; cin >> s >> tag >> n; int ls = s.length(); if(tag == 0) { for(int i = 0; i < ls; i++) if(s[i] >= 'A' && s[i] <= 'Z') s[i] = s[i] - 'A' + 'a'; } while(n--) { cin >> p; int lp = p.length(); if(tag == 0) { string tmp(lp, 'a'); for(int i = 0; i < lp; i++) //转化成小写 if(p[i] >= 'A' && p[i] <= 'Z') tmp[i] = p[i] - 'A' + 'a'; else tmp[i] = p[i]; pos = tmp.find(s); } else { pos = p.find(s); } if(pos != -1) cout << p << endl; } return 0;}
阅读全文
0 0
- 201409-3-字符串匹配
- 201409-3 字符串匹配
- 201409-3 字符串匹配
- 201409-3 字符串匹配
- CCF 字符串匹配201409-3
- CCF 201409-3 字符串匹配
- CCF-201409-3-字符串匹配
- CCF-201409-3 字符串匹配
- CCF 201409-3 字符串匹配
- 【CCFCSP】201409-3 字符串匹配
- 201409-3 字符串匹配 ccf
- CCF 201409-3 字符串匹配
- CCF 201409-3字符串匹配 (KMP)
- CCF 201409-3 字符串匹配 题解
- ccf/201409-3 /字符串匹配---java
- CCF认证201409-3 字符串匹配
- KMP字符串匹配(3)
- 字符串匹配(3)
- 详解:物理地址,虚拟地址,内存管理,逻辑地址之间的关系
- DateBase-视图
- 写了15年代码,我终于总结出提升10倍效率的三件事
- glove背后的计算原理(进一步理解glove实现细节)
- 移动APP测试流程(大致)
- 201409-3 字符串匹配
- CentOS 6.5部署安装Memcached
- (java)父类的静态方法为子类覆盖后,丢失多态性的问题
- 1071分段函数
- navicat远程连接配置
- 多表逻辑删除(表之间无关系)
- tomcat6-源码分析(1)
- 聪明的学生C语言实现(栈)
- 数据结构实验之二叉树六:哈夫曼编码