入门5字符串
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了入门5字符串相关的知识,希望对你有一定的参考价值。
https://www.luogu.com.cn/training/104
目录
- P5733 【深基6.例1】自动修正
- P1914 小书童——凯撒密码
- P1125 [NOIP2008 提高组] 笨小猴
- P1957 口算练习题
- P5015 [NOIP2018 普及组] 标题统计
- P5734 【深基6.例6】文字处理软件
- P1308 [NOIP2011 普及组] 统计单词数
- P1765 手机
- P3741 honoka的键盘
- P1321 单词覆盖还原
- P1553 数字反转(升级版)
- P1603 斯诺登的密码
- P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here
P5733 【深基6.例1】自动修正
#include<bits/stdc++.h>
using namespace std;
int main(void)
string s; cin>>s;
for(int i=0;i<s.size();i++) s[i]=toupper(s[i]);
cout<<s;
return 0;
P1914 小书童——凯撒密码
#include<bits/stdc++.h>
using namespace std;
int main(void)
int n; cin>>n;
string s; cin>>s;
for(int i=0;i<s.size();i++) s[i]='a'+(s[i]-'a'+n)%26;
cout<<s;
return 0;
P1125 [NOIP2008 提高组] 笨小猴
#include<bits/stdc++.h>
using namespace std;
int st[35];
int check(int x)
if(x==0) return 0;
if(x==1) return 0;
for(int i=2;i<=x/i;i++)
if(x%i==0) return 0;
return 1;
int main(void)
string a; cin>>a;
for(int i=0;i<a.size();i++) st[a[i]-'a']++;
int minv=1e9,maxv=-1;
for(int i=0;i<26;i++)
if(st[i]) minv=min(minv,st[i]),maxv=max(maxv,st[i]);
if(check(maxv-minv)) cout<<"Lucky Word"<<'\\n'<<maxv-minv;
else cout<<"No Answer"<<'\\n'<<0;
return 0;
P1957 口算练习题
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n;
struct node
int a,b;
char op;
Node[N];
int main(void)
cin>>n;
string s,a; getline(cin,s);
for(int i=0;i<n;i++)
getline(cin,s);
stringstream l(s);
vector<string>ve;
while(l>>a) ve.push_back(a);
if(ve.size()==2)
Node[i].op=Node[i-1].op;
Node[i].a=stoi(ve[0]);
Node[i].b=stoi(ve[1]);
else
Node[i].op=ve[0][0];
Node[i].a=stoi(ve[1]);
Node[i].b=stoi(ve[2]);
for(int i=0;i<n;i++)
string ans;
if(Node[i].op=='a')
ans=ans+to_string(Node[i].a)+"+"+to_string(Node[i].b)+"="+to_string(Node[i].a+Node[i].b);
if(Node[i].op=='b')
ans=ans+to_string(Node[i].a)+"-"+to_string(Node[i].b)+"="+to_string(Node[i].a-Node[i].b);
if(Node[i].op=='c')
ans=ans+to_string(Node[i].a)+"*"+to_string(Node[i].b)+"="+to_string(Node[i].a*Node[i].b);
cout<<ans<<endl;
cout<<ans.size()<<endl;
return 0;
P5015 [NOIP2018 普及组] 标题统计
#include<bits/stdc++.h>
using namespace std;
int main(void)
string s; getline(cin,s);
int flag=0;
for(int i=0;i<s.size();i++)
if(s[i]>='a'&&s[i]<='z') flag++;
if(s[i]>='A'&&s[i]<='Z') flag++;
if(s[i]>='0'&&s[i]<='9') flag++;
cout<<flag;
return 0;
P5734 【深基6.例6】文字处理软件
#include<bits/stdc++.h>
using namespace std;
int main(void)
int n; cin>>n;
string s; cin>>s;
while(n--)
int op; cin>>op;
if(op==1)
string a; cin>>a;
s+=a;
cout<<s<<endl;
else if(op==2)
int l,r; cin>>l>>r;
string temp;
for(int i=l;i<=l+r-1;i++) temp+=s[i];
s=temp;
cout<<s<<endl;
else if(op==3)
int index; cin>>index;
string a,temp; cin>>a;
for(int i=0;i<index;i++) temp+=s[i];
temp+=a;
for(int i=index;i<s.size();i++) temp+=s[i];
s=temp;
cout<<s<<endl;
else
string a; cin>>a;
cout<<(int)s.find(a)<<endl;
return 0;
P1308 [NOIP2011 普及组] 统计单词数
#include<bits/stdc++.h>
using namespace std;
int main(void)
string a,b,s;
getline(cin,a);
getline(cin,s);
stringstream l(s);
for(int i=0;i<a.size();i++) a[i]=tolower(a[i]);
for(int i=0;i<s.size();i++) s[i]=tolower(s[i]);
int cnt=0,index=0;
for(int i=0;i+a.size()-1<s.size();i++)
if((!i||s[i-1]==' ')&&s[i]!=' ')
int j=i;
string temp;
temp+=s[j];
while(j+1<s.size()&&s[j+1]!=' ') temp+=s[j+1],j++;
if(temp==a)
if(!cnt) index=i;
cnt++;
i=j;
if(cnt) cout<<cnt<<" "<<index<<endl;
else cout<<-1;
P1765 手机
#include<bits/stdc++.h>
using namespace std;
map<char,int>mp;
int main(void)
mp['a']=1,mp['b']=2,mp['c']=3;
mp['d']=1,mp['e']=2,mp['f']=3;
mp['g']=1,mp['h']=2,mp['i']=3;
mp['j']=1,mp['k']=2,mp['l']=3;
mp['m']=1,mp['n']=2,mp['o']=3;
mp['p']=1,mp['q']=2,mp['r']=3,mp['s']=4;
mp['t']=1,mp['u']=2,mp['v']=3;
mp['w']=1,mp['x']=2,mp['y']=3,mp['z']=4;
mp[' ']=1;
string s; getline(cin,s);
int sum=0;
for(int i=0;i<s.size();i++) sum+=mp[s[i]];
cout<<sum;
return 0;
P3741 honoka的键盘
#include<bits/stdc++.h>
using namespace std;
int n;
string s;
int main(void)
cin>>n>>s;
int cnt=0;
for(int i=0;i<s.size();i++)
if(i&&s[i]=='K'&&s[i-1]=='V') cnt++;
for(int i=0;i<s.size();i++)
string a=s; a[i]='V';
int temp=0;
for(int j=0;j<a.size();j++)
if(j&&a[j]=='K'&&a[j-1]=='V') temp++;
cnt=max(cnt,temp);
for(int i=0;i<s.size();i++)
string a=s; a[i]='K';
int temp=0;
for(int j=0;j<a.size();j++)
if(j&&a[j]=='K'&&a[j-1]=='V') temp++;
cnt=max(cnt,temp);
cout<<cnt;
return 0;
P1321 单词覆盖还原
#include<bits/stdc++.h>
using namespace std;
int main(void)
string s; cin>>s;
int ans1=0,ans2=0;
for(int i=0;i<s.size();i++)
if(s[i]=='b') ans1++;
if(s[i]=='o'&&s[i-1]!='b') ans1++;
if(s[i]=='y'&&s[i-1]!='o') ans1++;
if(s[i]=='g') ans2++;
if(s[i]=='i'&&s[i-1]!='g') ans2++;
if(s[i<以上是关于入门5字符串的主要内容,如果未能解决你的问题,请参考以下文章