题目:点击进入

描述:

给出若干行字符串,将每个串中的模式串(不分大小写)替换成目标串并输出。

题解:

题目很简单,关键在于如何优雅的实现,这里给出一些小的tips。
花式读入,一行,识别或不是别空格
string.find()方法,第一个参数是模式串,第二个参数是匹配的起始位置,返回的是第一个满足的位置,如果匹配不到,返回string::npos

代码:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include <ctime>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <climits>
#include <cassert>
#include <cctype>
#include <complex>
#include <algorithm>
#include <string>
#include <iostream>
#include <bitset>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <list>
#include <set>
using namespace std;
#define fi first
#define se second
#define MP(A, B) make_pair(A, B)
#define pb push_back
#define gcd __gcd
#define foreach(it,a) for(__typeof((a).begin()) it=(a).begin();it!=(a).end();it++)
typedef long long ll;
typedef unsigned long long ulls;
typedef unsigned int uint;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<pii> vii;
typedef map<int, int> mii;
typedef map<string, int> msi;
typedef map<pii, int> mpi;
#if ( ( _WIN32 || __WIN32__ ) && __cplusplus < 201103L)#define lld %I64d
#else#define lld %lld
#endif
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3fLL;
const int MOD = 1e9 + 7;
const double pi = acos(-1.0);
const double eps = 1e-6;
const int maxn = 1e2 + 5;
const int maxm = 1e6 + 5;
const int dx[] = {-1, 0, 1, 0, -1, -1, 1, 1};
const int dy[] = {0, 1, 0, -1, 1, -1, 1, -1};
inline int scan(int &a) { return scanf("%d", &a); }
inline int scan(int &a, int &b) { return scanf("%d%d", &a, &b); }
inline int scan(int &a, int &b, int &c) { return scanf("%d%d%d", &a, &b, &c); }
inline int scan(ll &a) { return scanf("lld", &a); }
inline int scan(ll &a, ll &b) { return scanf("lldlld", &a, &b); }
inline int scan(ll &a, ll &b, ll &c) { return scanf("lldlldlld", &a, &b, &c); }
inline int scan(double &a) { return scanf("%lf", &a); }
inline int scan(double &a, double &b) { return scanf("%lf%lf", &a, &b); }
inline int scan(double &a, double &b, double &c) { return scanf("%lf%lf%lf", &a, &b, &c); }
inline int scan(char &a) { return scanf("%c", &a); }
inline int scan(char *a) { return scanf("%s", a); }
template<class T> inline void mem(T &A, int x) { memset(A, x, sizeof(A)); }
template<class T0, class T1> inline void mem(T0 &A0, T1 &A1, int x) { mem(A0, x), mem(A1, x); }
template<class T0, class T1, class T2> inline void mem(T0 &A0, T1 &A1, T2 &A2, int x) { mem(A0, x), mem(A1, x), mem(A2, x); }
template<class T0, class T1, class T2, class T3> inline void mem(T0 &A0, T1 &A1, T2 &A2, T3 &A3, int x) { mem(A0, x), mem(A1, x), mem(A2, x), mem(A3, x); }
template<class T0, class T1, class T2, class T3, class T4> inline void mem(T0 &A0, T1 &A1, T2 &A2, T3 &A3, T4 &A4, int x) { mem(A0, x), mem(A1, x), mem(A2, x), mem(A3, x), mem(A4, x); }
template<class T0, class T1, class T2, class T3, class T4, class T5> inline void mem(T0 &A0, T1 &A1, T2 &A2, T3 &A3, T4 &A4, T5 &A5, int x) { mem(A0, x), mem(A1, x), mem(A2, x), mem(A3, x), mem(A4, x), mem(A5, x); }
template<class T0, class T1, class T2, class T3, class T4, class T5, class T6> inline void mem(T0 &A0, T1 &A1, T2 &A2, T3 &A3, T4 &A4, T5 &A5, T6 &A6, int x) { mem(A0, x), mem(A1, x), mem(A2, x), mem(A3, x), mem(A4, x), mem(A5, x), mem(A6, x); }
template<class T> inline T min(T a, T b, T c) { return min(min(a, b), c); }
template<class T> inline T max(T a, T b, T c) { return max(max(a, b), c); }
template<class T> inline T min(T a, T b, T c, T d) { return min(min(a, b), min(c, d)); }
template<class T> inline T max(T a, T b, T c, T d) { return max(max(a, b), max(c, d)); }
template<class T> inline T min(T a, T b, T c, T d, T e) { return min(min(min(a,b),min(c,d)),e); }
template<class T> inline T max(T a, T b, T c, T d, T e) { return max(max(max(a,b),max(c,d)),e); }
const string tar = "fjxmlhx";
const string txt = "marshtomp";
int main()
{#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);long _begin_time = clock();#endifstring p = "";while(getline(cin, p)){string ans = "";int len = p.size();string tmp = p;for(int i = 0; i < len; i++) tmp[i] = tolower(p[i]);int pos = -1, pre = 0;while((pos = tmp.find(txt, pos + 1)) != string::npos && pos < len && pre < len){for(int i = pre; i < pos; i++) ans += p[i];ans += tar;pre = pos + txt.size();}for(int i = pre; i < len; i++) ans += p[i];cout << ans << endl;}#ifndef ONLINE_JUDGElong _end_time = clock();printf("time = %ld ms\n", _end_time - _begin_time);#endifreturn 0;
}

【hihocoder1082】然而沼跃鱼早就看穿了一切——字符串相关推荐

  1. hihocoder1082 然而沼跃鱼早就看穿了一切

    时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼("marshtom ...

  2. hihoCoder - 1082 - 然而沼跃鱼早就看穿了一切 (字符串处理!!)

    #1082 : 然而沼跃鱼早就看穿了一切 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描写叙述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽全 ...

  3. HihoCoder - 1082 然而沼跃鱼早就看穿了一切

    HihoCoder - 1082 #1082 : 然而沼跃鱼早就看穿了一切 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的 ...

  4. 【漫漫长征路】hihocoder #1082 然而沼跃鱼早就看穿了一切

    [漫漫长征路D1]hihocoder #1082 然而沼跃鱼早就看穿了一切 描述 输入 样例输入 样例输出 AC的python代码 注意事项 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到 ...

  5. hiho#1082 然而沼跃鱼早就看穿了一切

    #1082 : 然而沼跃鱼早就看穿了一切 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句 ...

  6. hiho 1082 : 然而沼跃鱼早就看穿了一切

    #1082 : 然而沼跃鱼早就看穿了一切 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句 ...

  7. 然而沼跃鱼早就看穿了一切

    fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼("marshtomp",不区分大小写).为了使句子不缺少成分,统一换成 " ...

  8. #1082 : 然而沼跃鱼早就看穿了一切

    时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼("marshtom ...

  9. 【hihocoder】#1082 : 然而沼跃鱼早就看穿了一切

    题目链接:http://hihocoder.com/problemset/problem/1082?sid=791045 题目: fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程 ...

最新文章

  1. 利用zabbix-java-gateway监控jvm
  2. Java黑皮书课后题第7章:**7.19(是否排好序了?)编写以下方法,如果参数中的list数组已经排好序了则返回true。编写一个测试程序,提示用户输入一个列表,显示该列表是否已经排好序
  3. 【洛谷P1378】油滴扩展
  4. MySQL笔记 - 用户管理
  5. 在Nginx中支持HTTP3.0/QUIC
  6. 打印循环换行_一个案例轻松认识Python 循环语句(for)——10以内的素数
  7. 计算机的各种英语名称,计算机设备名称英语词汇
  8. linux ftp解压命令 cannot fid or open,系统中无卷
  9. java虚拟机之垃圾回收器
  10. 小米蓝牙音响驱动_小米手机绝佳配件,20W无线闪充,支持唤醒小爱,只卖149
  11. 批量生成小说人物名字
  12. H264 视频文件 帧格式 传输封装等
  13. Tensorflow中令人困惑的点(1)
  14. Python图像识别-Opencv05 色彩
  15. 图像增强算法(持续更新中)
  16. RecyclerView使用GridLayoutManager 设置间距一致大小
  17. C++核心准则R.32: 通过​unique_ptr(widget)类型参数表示函数试图获取widget的所有权
  18. [CocosCreator]封装对象池
  19. Spark 教程系列
  20. 【Linux 内核】Linux 内核源码目录说明 ④ ( security 目录 | sound 目录 | tools 目录 | usr 目录 | virt 目录 )

热门文章

  1. 华擎主板简直在开玩笑
  2. 【算法题解】爱因斯坦楼梯 - 若每步上2阶,最后剩下1阶;若每步上3阶,最后剩2阶;若每步上5阶最后剩下4阶;若每步上6阶最后剩5阶;只有每步上7阶最后刚好一阶也不剩。请问该阶梯至少有多少阶
  3. 一加手机·关闭应用双开储存空间
  4. 【python】采集**本子,不要看了,快进来~
  5. Java课程实验报告一:初识java
  6. 【量化】量化交易入门系列5:量化交易学习书籍推荐(一)
  7. 竞价排名和php是什么,竞价排名优缺点详解-金瑞帆高端建站
  8. ioncube_loader_win_5.2.dll to be installed
  9. Node.js stream模块(一)可读流
  10. Android Studio底部导航