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

时间限制:1000ms
单点时限:1000ms
内存限制:256MB

描述

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

输入

输入包括多行。

每行是一个字符串,长度不超过200。

一行的末尾与下一行的开头没有关系。

输出

输出包含多行,为输入按照描述中变换的结果。

样例输入
  1. The Marshtomp has seen it all before.
  2. marshTomp is beaten by fjxmlhx!
  3. AmarshtompB
样例输出
  1. The fjxmlhx has seen it all before.
  2. fjxmlhx is beaten by fjxmlhx!
  3. AfjxmlhxB
    题目链接:https://hihocoder.com/problemset/problem/1082
    分析:自己看吧!

下面给出AC代码:

  1. #include<iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. typedef long long ll;
  6.  
  7. int main(int argc , const char * argv[])
  8. {
  9. char s[];
  10. while (cin.getline(s,))
  11. {
  12. char f[] = "marshtomp";
  13. char t[] = "fjxmlhx";
  14. int sl = strlen(s);
  15. int fl= strlen(f);
  16. int tl = strlen(t);
  17. for (int i =; i<strlen(s); i++)
  18. {
  19. int j = ;
  20. int k =i;
  21. while (s[k] == f[j] || s[k] == (f[j]-))
  22. {
  23. k++;
  24. j++;
  25. if (j == fl)
  26. {
  27. for (int q = i; (q-i) < tl; q++)
  28. {
  29. s[q] = t[q-i];
  30. }
  31. for (int q = i+tl; q<strlen(s); q++)
  32. {
  33. if ( s[q+fl-tl] != '\0')
  34. {
  35. s[q] = s [q+fl-tl];
  36. }
  37. else
  38. {
  39. s[q] = '\0';
  40. }
  41. }
  42. }
  43. }
  44. }
  45. cout<<s<<endl;
  46. }
  47.  
  48. }

以上是官方代码,今天上课讲了一个cin.getline(),于是把我之前一直没有过的代码稍微改动了一下输入格式,要用while循环连续输入,否则会WA!

下面给出我的简洁版的AC代码:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. char s[];
  6. while(cin.getline(s,))//连续输入,cin.getline()的用法就是这样用,具体参照我的博客
  7. {
  8. for(int i=;s[i]!='\0';i++)
  9. {
  10. 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'))
  11. {
  12. s[i]='f';
  13. s[i+]='j';
  14. s[i+]='x';
  15. s[i+]='m';
  16. s[i+]='l';
  17. s[i+]='h';
  18. s[i+]='x';//这个if循环就是无视大小写,直接换
  19. for(int j=i+;s[j]!='\0';j++)
  20. s[j]=s[j+];//换完以后再挪位置
  21. }
  22. }
  23. cout<<s<<endl;
  24. }
  25. return ;
  26. }
  1.  

hihoCoder #1082 : 然而沼跃鱼早就看穿了一切(字符串处理)的更多相关文章

  1. hihocoder 1082 然而沼跃鱼早就看穿了一切(字符串替换)

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

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

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

  3. hihocoder 1082 然而沼跃鱼早就看穿了一切 (替换指定的串 )

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

  4. Hihocoder #1082 : 然而沼跃鱼早就看穿了一切 暴力

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

  5. hihocoder:#1082 : 然而沼跃鱼早就看穿了一切(用string)

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

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

    http://hihocoder.com/problemset/problem/1082 首先将字符串全部字母变成小写,不断用find查找字符串中的Marshtomp,并把每个字符变为’#‘ ,最后统 ...

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

    原题地址 字符串匹配+替换 注意替换串和原串长度是不等的,所以替换完还要进行收缩 可以顺带练习一下KMP 代码: #include <iostream> #include <cstr ...

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

      题目:http://hihocoder.com/problemset/problem/1082 输入一个字符串,将其中特定的单词替换成另一个单词   代码注意点: 1. getline(istre ...

  9. 【面试笔试算法】Problem 8: 然而沼跃鱼早就看穿了一切(hiho题库)

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

随机推荐

  1. Java思维导图之Class对象

    Class对象相关知识导图: 导图源文件保存地址:https://github.com/wanghaoxi3000/xmind

  2. 截取ip 不加引号

    ip a |grep  /26 |cut -b10- | cut -d / -f 1

  3. puppet配置问题统计

    一. [root@client puppet]# puppetd --test --server master.test.cominfo: Creating a new SSL key for cli ...

  4. Kotlin——最详细的常量、变量、注释的使用

    在Kotlin中的变量.常量以及注释多多少少和Java语言是有着不同之处的.不管是变量.常量的定义方式,还是注释的使用.下面详细的介绍Kotlin中的变量.常量.注释的使用.以及和Java的对比. 如 ...

  5. Android中style和theme的区别

    在学习Xamarin android的过程中,最先开始学习的还是熟练掌握android的六大布局-LinearLayout .RelativeLayout.TableLayout.FrameLayou ...

  6. ArcGIS 网络分析[8.3] 设置IDENetworkDataset的属性及INetworkDataset的对比/创建网络数据集

    创建网络数据集就得有各种数据和参数,这篇文章很长,慎入. 网络分析依赖于网络数据集的质量,这句话就在这里得到了验证:复杂.精确定义. 本节目录如下: 1. INetworkDataset与IDENet ...

  7. AngularJS 模板

    一个应用的代码架构有很多种.对于AngularJS应用,我们鼓励使用模型-视图-控制器(MVC)模式解耦代码和分离关注点.考虑到这一点,我们用AngularJS来为我们的应用添加一些模型.视图和控制器 ...

  8. C#的发展已经15年了 。。。历史发展

    C#是微软公司在2000年6月发布的一种新的编程语言,主要由安德斯·海尔斯伯格(Anders Hejlsberg)主持开发,它是第一个面向组件的编程语言,其源码会编译成msil再运行.它借鉴了Delp ...

  9. FPGA浮点数定点化

    因为在普通的fpga芯片里面,寄存器只可以表示无符号型,不可以表示小数,所以在计算比较精确的数值时,就需要做一些处理,不过在altera在Arria 10 中增加了硬核浮点DSP模块,这样更加适合硬件 ...

  10. Java 字符编码与解码

    1.字符编码的发展历程 ①.ASCII 码 因为计算机只认识数字,所以我们在计算机里面的一切数据都是以数字来表示,因为英文字符有限,所以规定使用的字节的最高位是 0,每一个字节都是以 0-127 之间 ...