大家好,新手创作,欢迎高手指导,谢谢!
不定时更新,题目+解析+评测结果+完整程序,有问题有瑕疵欢迎评论区留言!
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;
}
谢谢大家,给个赞呗!