c++stl之字符串(string)

一、用法总结

1.返回字符串长度,size(),length()都行
2.substr(i,j),截取下标为i的字符串往后一共长度为j位
3.清空字符串,clear()
4.str.find(str2),当str2是str的子串时,返回str中匹配的第一个字符的下标
5.翻转字符串,reverse(迭代器,迭代器),例如reverse(str.begin(),str.end()),左闭右开
6.删除,有三种
~删除单个字符,erase(it),it为迭代器
~删除区间字符,erase(it,it2)it,it2为迭代器,左闭右开
~删除区间字符,erase(pos,length),pos为删除字符串起始位置,length为要删除的字符长度
7.插入字符串,insert(pos,string),从pos位置插入string字符串

二、题目总结

nefu 31 字符串合并

#include<bits/stdc++.h>
using namespace std;
string a,b,c;
int main()
{
    while(cin>>a>>b){
    c=a+b;
    cout<<c<<endl;
    }
    return 0;
}

nefu 1019 strange string

我是用栈做,所以最后还要考虑前面的字符和后面的字符不相同

#include <bits/stdc++.h>
using namespace std;

int main()
{
    string s1;
    while(cin>>s1)
    {
        stack<char>vis;
        for(int i=0;i<s1.size();i++)
        {
            if(vis.empty())vis.push(s1[i]);
            else
            {
                char ch=vis.top();
                if(ch!=s1[i])vis.push(s1[i]);
            }
        }
        if(vis.size()==3)//题目要求三个字母两两不同,所以还要判断第1 3个是否相同
        {
            char ch=vis.top();
            vis.pop();
            vis.pop();
            if(ch==vis.top())cout<<"NO"<<endl;
            else cout<<"YES"<<endl;
        }
        else cout<<"NO"<<endl;
    }
    return 0;
}

poj 1580 String Matching

#include<bits/stdc++.h>
using namespace std;
string a,b,c;
int main()
{
    int n,m;

    while(cin>>a&&a!="-1")
    {
        cin>>b;
        int flag=0;
        int cnt=0,mcnt=0;
        int n=a.length();
        int m=b.length();
        for(int j=-(m-1);j<n;j++){
               cnt=0;

        for(int i=0;i<m;i++)
        {
            if(i+j>=n)continue;
            if(i+j<0)continue;
            if(a[i+j]==b[i])cnt+=2;

        }
        if(mcnt<cnt){mcnt=cnt;}
        }
        int cnt0=n+m;
        int m0=__gcd(cnt0,mcnt);
        c="appx("+a+","+b+") = ";
        cout<<c;
        if(mcnt==0)printf("0\n");
        else if(cnt0==mcnt)printf("1\n");
        else printf("%d/%d\n",mcnt/m0,cnt0/m0);
    }
    return 0;
}

nefu 1681 字符串乘法

这题学了kmp算法再回来做做

猜你喜欢

转载自blog.csdn.net/zhoucheng_123/article/details/104437392
今日推荐