字符串习题

Posted 幽殇默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串习题相关的知识,希望对你有一定的参考价值。

760. 字符串长度

在这里插入图片描述
目录

#include<cstdio>
#include<iostream>
using namespace std;
int main(void)
{
    char c; int k=0;
    while(scanf("%c",&c)!=EOF) ++k;
    printf("%d",k-1);//结束的多余的回车减掉
}

761. 字符串中的数字个数

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    string s;
    getline(cin,s);
    int k=0;
    for(int i=0;i<s.size();i++) if(isdigit(s[i])) k++;
    cout<<k<<endl;
    return 0;
}

762. 字符串匹配

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main(void)
{
    double n,k; cin>>n;
    string s1,s2; cin>>s1>>s2;
    for(int i=0;i<s1.size();i++) if(s1[i]==s2[i]) k+=1;
    if(k/s1.size()>=n) printf("yes\\n");
    else printf("no\\n");
    return 0;
}

763. 循环相克令

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    int t; cin>>t;
    while(t--)
    {
        string s1,s2; cin>>s1>>s2;
        bool flag=false;
        if(s1==s2) printf("Tie\\n"),flag=true;
        if( (s1=="Hunter"&&s2=="Gun") || (s1=="Gun"&&s2=="Bear") || (s1=="Bear"&&s2=="Hunter"))
        printf("Player1\\n"),flag=true;
        if(!flag) printf("Player2\\n");
    }
    return 0;
}

764. 输出字符串

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    string s,ans;  getline(cin,s);
    for(int i=1;i<s.size();i++) ans+=s[i]+s[i-1];
    ans+=s[s.size()-1]+s[0];
    cout<<ans<<endl;
    return 0;
}

765. 字符串加空格

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    string s,ans; getline(cin,s);
    for(int i=0;i<s.size();i++) ans+=s[i],ans+=' ';
    cout<<ans<<endl;
    return 0;
}

766. 去掉多余的空格

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    string s; 
    while(cin>>s) cout<<s<<" ";
    return 0;
}
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    string s; getline(cin,s);
    int i=0;
    while(i!=s.size())
    {
        if(s[i]!=' ') cout<<s[i],i++;
        else
        {
            while(s[i]==' '&&i<s.size()) i++;
            cout<<" ";
        }
    }
    return 0;
}

767. 信息加密

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    string s; getline(cin,s);
    for(int i=0;i<s.size();i++)
    {
        if(isalpha(s[i])){
            if(s[i]=='z'||s[i]=='Z') printf("%c",s[i]-25);
            else printf("%c",s[i]+1);
        } 
        else cout<<s[i];
    }
    return 0;
}

768. 忽略大小写比较字符串大小

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main(void)
{
    string a,b;
    getline(cin,a);
    getline(cin,b);
    for(int i=0;i<a.size();i++) a[i]=toupper(a[i]);
    for(int i=0;i<b.size();i++) b[i]=toupper(b[i]);
    if(a>b) printf(">\\n");
    else if(a==b) printf("=\\n");
    else printf("<\\n");
}

769. 替换字符

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    string s; getline(cin,s);
    char c; cin>>c;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]==c) cout<<'#';
        else cout<<s[i];
    }
    return 0;
}

770. 单词替换

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
vector<string> ve;
int main(void)
{
    string s;
    while(cin>>s) ve.push_back(s);
    for(int i=0;i<ve.size()-2;i++) 
    {
        if(ve[i]==ve[ve.size()-2]) cout<<ve[ve.size()-1];
        else cout<<ve[i];
        cout<<" ";
    }
    return 0;
}

771. 字符串中最长的连续出现的字符

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    int t; cin>>t;
    while(t--)
    {
        string s; cin>>s;
        char c;
        int  ans=0;
        for(int i=0;i<s.size();i++)
        {
            int n=1;
            while((i+1)<s.size()&&s[i]==s[i+1]) i++,n++;
            if(n>ans) ans=n,c=s[i];
        }
        cout<<c<<" "<<ans<<endl;
    }
    return 0;
}

772. 只出现一次的字符

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int a[28];
int main(void)
{
    char s[100005]; cin>>s;
    for(int i=0;i<strlen(s);i++) a[s[i]-'a']++;
    bool flag=false;
    for(int i=0;i<strlen(s);i++) 
    {
        if(a[s[i]-'a']==1)
        {
            cout<<s[i];
            flag=true;
            break;
        }
    }
    if(!flag) cout<<"no"<<endl;
    return 0;
}

773. 字符串插入

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    string a,b;
    while(cin>>a>>b)
    {
        bool flag=false;
        char temp=' ';
        for(int i=0;i<a.size();i++) if(a[i]>temp) temp=a[i];
        for(int i=0;i<a.size();i++)
        {
            cout<<a[i];
            if(a[i]==temp&&!flag) cout<<b,flag=true;
        }
        cout<<endl;
    }
}

774. 最长单词

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
int main(void)
{
    vector<string> ve;
    string s;
    while(cin>>s) ve.push_back(s);
    string ans="";
    ve[ve.size()-1]=ve[ve.size()-1].substr(0,ve[ve.size()-1].size()-1);
    for(int i=0;i<ve.size();i++)
    {
        int t=ve[i].size();
        if(t>ans.size()) ans=ve[i];
    }
    cout<<ans<<endl;
    return 0;
}

775. 倒排单词

在这里插入图片描述
题目地址

笨办法学 Python(第三版)习题 6: 字符串(string)和文本

21个常用代码片段

小结(练习题)

算法习题---5.1代码对齐(UVa1593)

片段(Java) | 机试题+算法思路+考点+代码解析 2023

PHP 代码片段