hihoCoder #1082 : 然而沼跃鱼早就看穿了一切(字符串处理)
#1082 : 然而沼跃鱼早就看穿了一切
描述

fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼(“marshtomp”,不区分大小写)。为了使句子不缺少成分,统一换成 “fjxmlhx” 。
输入
输入包括多行。
每行是一个字符串,长度不超过200。
一行的末尾与下一行的开头没有关系。
输出
输出包含多行,为输入按照描述中变换的结果。
- 样例输入
-
The Marshtomp has seen it all before.
marshTomp is beaten by fjxmlhx!
AmarshtompB - 样例输出
The fjxmlhx has seen it all before.
fjxmlhx is beaten by fjxmlhx!
AfjxmlhxB
题目链接:https://hihocoder.com/problemset/problem/1082
分析:自己看吧!
下面给出AC代码:
#include<iostream>
#include <string.h>
using namespace std; typedef long long ll; int main(int argc , const char * argv[])
{
char s[];
while (cin.getline(s,))
{
char f[] = "marshtomp";
char t[] = "fjxmlhx";
int sl = strlen(s);
int fl= strlen(f);
int tl = strlen(t);
for (int i =; i<strlen(s); i++)
{
int j = ;
int k =i;
while (s[k] == f[j] || s[k] == (f[j]-))
{
k++;
j++;
if (j == fl)
{
for (int q = i; (q-i) < tl; q++)
{
s[q] = t[q-i];
}
for (int q = i+tl; q<strlen(s); q++)
{
if ( s[q+fl-tl] != '\0')
{
s[q] = s [q+fl-tl];
}
else
{
s[q] = '\0';
}
}
}
}
}
cout<<s<<endl;
} }
以上是官方代码,今天上课讲了一个cin.getline(),于是把我之前一直没有过的代码稍微改动了一下输入格式,要用while循环连续输入,否则会WA!
下面给出我的简洁版的AC代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
char s[];
while(cin.getline(s,))//连续输入,cin.getline()的用法就是这样用,具体参照我的博客
{
for(int i=;s[i]!='\0';i++)
{
if((s[i]=='M'||s[i]=='m')&&(s[i+]=='a'||s[i+]=='A')&&(s[i+]=='r'||s[i+]=='R')&&(s[i+]=='s'||s[i+]=='S')&&(s[i+]=='h'||s[i+]=='H')&&(s[i+]=='t'||s[i+]=='T')&&(s[i+]=='o'||s[i+]=='O')&&(s[i+]=='m'||s[i+]=='M')&&(s[i+]=='p'||s[i+]=='P'))
{
s[i]='f';
s[i+]='j';
s[i+]='x';
s[i+]='m';
s[i+]='l';
s[i+]='h';
s[i+]='x';//这个if循环就是无视大小写,直接换
for(int j=i+;s[j]!='\0';j++)
s[j]=s[j+];//换完以后再挪位置
}
}
cout<<s<<endl;
}
return ;
}
hihoCoder #1082 : 然而沼跃鱼早就看穿了一切(字符串处理)的更多相关文章
- hihocoder 1082 然而沼跃鱼早就看穿了一切(字符串替换)
时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼(“marshtomp”,不区 ...
- hihoCoder - 1082 - 然而沼跃鱼早就看穿了一切 (字符串处理!!)
#1082 : 然而沼跃鱼早就看穿了一切 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描写叙述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽全 ...
- hihocoder 1082 然而沼跃鱼早就看穿了一切 (替换指定的串 )
#1082 : 然而沼跃鱼早就看穿了一切 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句 ...
- Hihocoder #1082 : 然而沼跃鱼早就看穿了一切 暴力
时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼(“marshtomp”,不区 ...
- hihocoder:#1082 : 然而沼跃鱼早就看穿了一切(用string)
题目是这样的: 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼("marshtomp",不区分大小写).为了使句子不缺少成分, ...
- hihoCoder 1082然而沼跃鱼早就看穿了一切 (字符串处理)
http://hihocoder.com/problemset/problem/1082 首先将字符串全部字母变成小写,不断用find查找字符串中的Marshtomp,并把每个字符变为’#‘ ,最后统 ...
- hihoCoder#1082 然而沼跃鱼早就看穿了一切
原题地址 字符串匹配+替换 注意替换串和原串长度是不等的,所以替换完还要进行收缩 可以顺带练习一下KMP 代码: #include <iostream> #include <cstr ...
- 【hihoCoder】1082: 然而沼跃鱼早就看穿了一切
题目:http://hihocoder.com/problemset/problem/1082 输入一个字符串,将其中特定的单词替换成另一个单词 代码注意点: 1. getline(istre ...
- 【面试笔试算法】Problem 8: 然而沼跃鱼早就看穿了一切(hiho题库)
时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼("marshtom ...
随机推荐
- 小白的Python之路 if __name__ == '__main__' 解析
if __name__ == '__main__' 参考文献: http://www.cnblogs.com/xuxm2007/archive/2010/08/04/1792463.html http ...
- 代码生成利器:IDEA 强大的 Live Templates(转)
代码生成利器:IDEA 强大的 Live Templates - 文章 - 伯乐在线http://blog.jobbole.com/110607/ 前言 Java 开发过程经常需要编写有固定格式的代码 ...
- jsp程序设计:jstl之JSTL标签库
转载自:http://www.blogjava.net/haizhige/archive/2008/10/26/236783.html,个人进行了一些修改. 前言:写一个taglib一般可以继承Sim ...
- 转:Siri之父:语音交互或将主导未来十年发展
http://zhinengjiaohu.juhangye.com/201709/weixin_5664458.html Siri之父Adam Cheyer认为,语音交互很可能是未来十年内计算技术的一 ...
- 闲来无事做了一个批处理的win10账号管理
@echo off %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe&q ...
- /sbin/nologin 和 /bin/false 的区别
/bin/false是最严格的禁止login选项,一切服务都不能用,而/sbin/nologin只是不允许系统login,可以使用其他ftp等服务 如果想要用false在禁止login的同时允许ftp ...
- centos 7 部署 open-falcon 0.2.0
=============================================== 2017/12/06_第2次修改 ccb_warlock 更 ...
- js数组操作-添加,删除
js 数组操作常用方法. push():在数组后面加入元素,并返回数组的长度 unshift():在数组前面加入元素,并返回数组的长度 pop()删除最后一个元素 shift()删除第一个元素 var ...
- 伽罗瓦域(有限域)GFq^12上元素的1→2→4→12塔式扩张(2)------第二次扩张
接上文https://www.cnblogs.com/heshuchao/p/8196307.html 继续探讨塔式扩张的第二部分,即1→2→4→12中2 → 4的元素扩张表示方式与计算公式推导. 3 ...
- [编织消息框架][JAVA核心技术]动态代理应用12-总结
动态代理这篇比较长,是框架组成的重要基础 回顾下学到的应用技术 1.异常应用 2.annotation技术 3.数值与逻辑分享 4.jdk.cglib.javassist等动态代理技术 5.懒处理.预 ...