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

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


目录

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 <bits/stdc++.h>
using namespace std;
int main()
{
    string n;
    getline(cin,n);
    int l=n.length();
    int u=0;
    for(int i=0;i<l;i++)
    {
      if(n[i]>='0'&&n[i]<='9')
      {
        u++;
      //  cout<<"数字"<<endl; 
    }
    if(n[i]>='a'&&n[i]<='z')
    {
      u++;
      //cout<<"小写字母"<<endl; 
    }
    if(n[i]>='A'&&n[i]<='Z')
    {
      //cout<<"大写字母"<<endl; 
      u++;
    }
  }
    cout<<u;
}

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 <bits/stdc++.h>
using namespace std;
int main()
{
  int n;
  cin>>n;
  string s0;
  cin>>s0;
  int m;
  string s1;
  for(int i=0;i<n;i++)
  {
    cin>>m;
    switch(m)
    {
        case 1 :
        cin>>s1;
        s0.append(s1);
        cout<<s0<<endl;
      break;
      case 2 :
        int a,b;
      cin>>a>>b;  
    s0=s0.substr(a,b);
    cout<<s0<<endl;
    break;
    case 3 :
      cin>>a;
      cin>>s1;
      s0.insert(a,s1);
    cout<<s0<<endl; 
    break;
    case 4 :
      cin>>s1;
    int y=s0.find(s1);
    cout<<y<<endl;
    break;
    }
  }
 } 

P1765 手机

题目描述

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

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

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

输入格式

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

输出格式

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

输入输出样例

输入 #1复制

i have a dream

输出 #1复制

23

说明/提示

NOI 导刊 2010 普及(10)

# include <bits/stdc++.h>
using namespace std;
int main()
{
  int count=0;
  string a;
getline(cin,a);
int l=a.length(); 
for(int i=0;i<l;i++)
{
if(a[i]=='a'||a[i]=='d'||a[i]=='g'||a[i]=='j'||a[i]=='m'||a[i]=='p'||a[i]=='t'||a[i]=='w'||a[i]==' ')
{
  count++;
}
if(a[i]=='b'||a[i]=='e'||a[i]=='h'||a[i]=='k'||a[i]=='n'||a[i]=='q'||a[i]=='u'||a[i]=='x')
{
  count=count+2;
}
if(a[i]=='c'||a[i]=='f'||a[i]=='i'||a[i]=='l'||a[i]=='o'||a[i]=='r'||a[i]=='v'||a[i]=='y')
{
  count=count+3;
} 
if(a[i]=='s'||a[i]=='z')
{
  count=count+4;
}
}
cout<<count;
}


相关文章
|
算法
蓝桥杯算法竞赛第一周题型总结
蓝桥杯算法竞赛第一周题型总结
76 0
|
人工智能 机器人 定位技术
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十天
大家好我是泡泡,今天给大家带来船新的题解
128 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十天
|
关系型数据库 MySQL
坚持刷题的第三周(四)
坚持刷题的第三周(四)
144 1
坚持刷题的第三周(四)
算法每日一题——第二天——一手顺子
算法每日一题——第二天——一手顺子
算法每日一题——第二天——一手顺子
|
机器学习/深度学习
蓝桥真题31日冲刺 | 每日三题题解报告 第二天
大家好,我是泡泡,今天给大家带来今日打卡的四道题的题解
155 0
|
机器学习/深度学习 人工智能
蓝桥杯倒数七天冲刺国一之每日复习第三天
大家好,我是泡泡,今天继续复习
168 0
|
机器学习/深度学习 算法 IDE
洛谷每日三题之第四天
洛谷每日三题之第四天
|
机器学习/深度学习
洛谷每日三题之第五天
洛谷每日三题之第五天
|
C语言
洛谷每日三题--第二天
洛谷每日三题--第二天
|
机器学习/深度学习 算法 搜索推荐
洛谷每日三题之第六天
洛谷每日三题之第六天