洛谷每日三题之第三天(第四天补做)

因为一些原因昨天计划被打乱,今天补上。

目录

P5015 [NOIP2018 普及组] 标题统计

题目描述

输入格式

输出格式

输入输出样例

说明/提示

题目描述

输入格式

输出格式

输入输出样例

说明/提示

题目描述

输入格式

输出格式

输入输出样例

说明/提示


P5015 [NOIP2018 普及组] 标题统计

题目描述

凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字 符数时,空格和换行符不计算在内。

输入格式

输入文件只有一行,一个字符串 ss。

输出格式

输出文件只有一行,包含一个整数,即作文标题的字符数(不含空格和换行符)。

输入输出样例

输入 #1复制

234 

输出 #1复制

3

输入 #2复制

Ca 45 

输出 #2复制

4

说明/提示

【输入输出样例 1 说明】
标题中共有 3 个字符,这 3 个字符都是数字字符。

【输入输出样例 2 说明】 标题中共有55 个字符,包括 11 个大写英文字母, 11 个小写英文字母和 22 个数字字符, 还有 11 个空格。由于空格不计入结果中,故标题的有效字符数为 44 个。

【数据规模与约定】
规定 |s|∣s∣ 表示字符串 ss 的长度(即字符串中的字符和空格数)。
对于 40\%40% 的数据,1 ≤ |s| ≤ 51≤∣s∣≤5,保证输入为数字字符及行末换行符。
对于 80\%80% 的数据,1 ≤ |s| ≤ 51≤∣s∣≤5,输入只可能包含大、小写英文字母、数字字符及行末换行符。
对于 100\%100% 的数据,1 ≤ |s| ≤ 51≤∣s∣≤5,输入可能包含大、小写英文字母、数字字符、空格和行末换行符。

# include 
using namespace std;
int main()
{
    string n;
    getline(cin,n);
    int l=n.length();
    int u=0;
    for(int i=0;i='0'&&n[i]<='9')
    	{
    		u++;
    	//	cout<<"数字"<='a'&&n[i]<='z')
		{
			u++;
			//cout<<"小写字母"<='A'&&n[i]<='Z')
		{
			//cout<<"大写字母"<

 P5734 【深基6.例6】文字处理软件

题目描述

你需要开发一款文字处理软件。最开始时输入一个字符串作为初始文档。可以认为文档开头是第 00 个字符。需要支持以下操作:

  • 1 str:后接插入,在文档后面插入字符串 \texttt{str}str,并输出文档的字符串。

  • 2 a b:截取文档部分,只保留文档中从第 aa 个字符起 bb 个字符,并输出文档的字符串。

  • 3 a str:插入片段,在文档中第 aa 个字符前面插入字符串 \texttt{str}str,并输出文档的字符串。

  • 4 str:查找子串,查找字符串 \texttt{str}str 在文档中最先的位置并输出;如果找不到输出 -1−1。

为了简化问题,规定初始的文档和每次操作中的 \texttt{str}str 都不含有空格或换行。最多会有 qq 次操作。

输入格式

第一行输入一个正整数 qq,表示操作次数。

第二行输入一个字符串 \texttt{str}str,表示最开始的字符串。

第三行开始,往下 qq 行,每行表示一个操作,操作如题目描述所示。

输出格式

一共输出 nn 行。

对于每个操作 1,2,31,2,3,根据操作的要求输出一个字符串。

对于操作 44,根据操作的要求输出一个整数。

输入输出样例

输入 #1复制

4
ILove
1 Luogu
2 5 5
3 3 guGugu
4 gu

输出 #1复制

ILoveLuogu
Luogu
LuoguGugugu
3

说明/提示

数据保证,1 \leq q\le 1001≤q≤100,开始的字符串长度 \leq 100≤100。

# include 
using namespace std;
int main()
{
	int n;
	cin>>n;
	string s0;
	cin>>s0;
	int m;
	string s1;
	for(int i=0;i>m;
		switch(m)
		{
				case 1 :
				cin>>s1;
				s0.append(s1);
				cout<>a>>b;	
		s0=s0.substr(a,b);
		cout<>a;
			cin>>s1;
		
			s0.insert(a,s1);
		cout<>s1;
		int y=s0.find(s1);
		cout<

 P1765 手机

题目描述

一般的手机的键盘是这样的:

洛谷每日三题之第三天(第四天补做)_第1张图片

要按出英文字母就必须要按数字键多下。例如要按出 x 就得按 9 两下,第一下会出 w,而第二下会把 w 变成 x。0 键按一下会出一个空格。

你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。

输入格式

一行句子,只包含英文小写字母和空格,且不超过 200 个字符。

输出格式

一行一个整数,表示按键盘的总次数。

输入输出样例

输入 #1复制

i have a dream

输出 #1复制

23

说明/提示

NOI 导刊 2010 普及(10)

# include 
using namespace std;
int main()
{
	int count=0;
	string a;
getline(cin,a);
int l=a.length(); 
for(int i=0;i

你可能感兴趣的:(刷题专栏,蓝桥杯,算法,c++)