达芬奇手稿

这篇文章介绍了一个编程问题,要求从达芬奇手稿风格的字符串中统计空格数量,这些空格可能隐藏线索。给出了使用C++编写的步骤和示例,用于计算给定字符串行中空格的总数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,新手创作,欢迎高手指导,谢谢!

不定时更新,题目+解析+评测结果+完整程序,有问题有瑕疵欢迎评论区留言!


1.题目

57. K13451 达芬奇手稿(manuscript)

题目描述

想要破解达芬奇密码,小科认为必须从达芬奇留下的手稿中查找线索。现已知手稿中一共有N行英文语句,每行语句由若干个空格隔开的单词组成,小科认为所有的空格处都可能是留有线索的地方,请你利用编程,帮助小科找出一共有多少个可能留有线索的地方。

输入格式

第1行:一个整数N,表示有N行字符串。

接下来N行,表示N行字符串,字符串中只包含大小写字母和空格。

输出格式

1行:一个整数,表示这N行字符串中空格的数量。

输入输出样例

输入样例1:复制
1
Hello World
输出样例1:复制
1
输入样例2:复制
2
Hello World
This is a test
输出样例2:复制
4

说明

【数据范围】

1 <= N <= 100, 1 <= 每行字符串的长度 <= 100

【耗时限制】1000ms 【内存限制】256MB


2.解析

这道题其实就是给我们几个字符串让我们输出一共有多少个空格

因此,我们可以分成四步来写:


1.变量的定义

#include<bits/stdc++.h>
using namespace std;
int n,cnt;
string s;
int main()
{
 	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
}

n:N行字符串

s:字符串

cnt:这N行字符串中空格的数量


2.输入(cin)

​
#include<bits/stdc++.h>
using namespace std;
int n,cnt;
string s;
int main()
{
 	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
    cin.get();
	while(n--){
		getline(cin,s);
	}
}

​

由于有n个字符串,所以要循环n遍。

注意添加cin.get()。


3.判断(if)+计数(cnt++)

​
#include<bits/stdc++.h>
using namespace std;
int n,cnt;
string s;
int main()
{
 	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	cin.get();
	while(n--){
		getline(cin,s);
		for(int i=0;i<s.size();i++){
			if(s[i]==' '){
				cnt++;
			}
		}
	}
}

​

要判断s串的每一项


4.输出

#include<bits/stdc++.h>
using namespace std;
int n,cnt;
string s;
int main()
{
 	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	cin.get();
	while(n--){
		getline(cin,s);
		for(int i=0;i<s.size();i++){
			if(s[i]==' '){
				cnt++;
			}
		}
	}
	cout<<cnt;
}

 输出很简单,注意别打错!


3.评测结果


 

4.完整程序

 #include<bits/stdc++.h>
using namespace std;
int n,cnt;
string s;
int main()
{
     ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n;
    cin.get();
    while(n--){
        getline(cin,s);
        for(int i=0;i<s.size();i++){
            if(s[i]==' '){
                cnt++;
            }
        }
    }
    cout<<cnt;
}



谢谢大家,给个赞呗!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值