当前位置:   article > 正文

删除单词后缀_11.删除英语单词后缀er ly ing结尾

11.删除英语单词后缀er ly ing结尾

【小韦同学@题解-删除单词后缀】

题目:

描述

给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作。

输入

输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32)。

输出

输出按照题目要求处理后的单词。

输入样例1

referer

输出样例1

refer

来源

http://shenben.club/problem?id=126

题解:

/*****************************************************************
* 题目:删除单词后缀 
* 描述:给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该
		后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何
		操作。
* 作者:小韦同学 
* 邮箱:weichangying_wcy@163.com 

* 题解:
	思路:1)判断后面两个字符是否为er或者ly,若是则删除结尾两个字符,
		  否则转2)
		  2)判断后面三个字符是否为ing,若是则删除结尾三个字符。 
	注: 1°删除的时候不要忘记减一。 
		 2°注意逻辑表达式的书写。 
******************************************************************/

#include <string>
#include <iostream>
using namespace std;

int main() {
	string s;
	getline(cin, s);
	int len = s.size();
	if (s[len - 2] == 'e' && s[len - 1] == 'r'
	 || s[len - 2] == 'l' && s[len - 1] == 'y') {
		s.erase(s.end() - 1); 
		s.erase(s.end() - 1); 
	} else if (s[len - 3] == 'i' && s[len - 2] == 'n' && s[len - 1] == 'g') {
		s.erase(s.end() - 1); 
		s.erase(s.end() - 1); 
		s.erase(s.end() - 1); 
	}
	cout << s;
	
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

我是小韦同学,企者不立,跨者不行,每天进步一点点。
欢迎大家多多交流,如果发现有错误,请多指正。有疑问的同学也可以留言评论或者发邮件。邮箱:weichangying_wcy@163.com

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/442609
推荐阅读
相关标签
  

闽ICP备14008679号