oj:回文字符串处理

来源:互联网 发布:深圳有名的公司 知乎 编辑:程序博客网 时间:2024/05/18 00:55

这里写图片描述

思路:首先使用string 的s.insert()插入,然后使用反转函数reverse(),最后比较是否相等

#include <iostream>#include <string>using namespace std;int main(){    string str1,str2;    while (cin >> str1 >>str2)    {        size_t pos=0,count= 0;        while (pos <= str1.size())        {            string tmp = str1;            tmp.insert(pos++, str2); // 指定位置插入            string _tmp = tmp;            reverse(_tmp.begin(), _tmp.end()); //然后反转字符串            if (tmp.compare(_tmp) == 0) //比较与原串是否相等                count++;        }        cout << count << endl;    }    system("pause");    return 0;}

string的成员函数insert有以下多种重载:
string &insert(int p0, const char *s);——在p0位置插入字符串s
string &insert(int p0, const char *s, int n);——在p0位置插入字符串s的前n个字符
string &insert(int p0,const string &s);——在p0位置插入字符串s
string &insert(int p0,const string &s, int pos, int n);——在p0位置插入字符串s从pos开始的连续n个字符
string &insert(int p0, int n, char c);//在p0处插入n个字符c
iterator insert(iterator it, char c);//在it处插入字符c,返回插入后迭代器的位置
void insert(iterator it, const_iterator first, const_iteratorlast);//在it处插入从first开始至last-1的所有字符
void insert(iterator it, int n, char c);//在it处插入n个字符c

0 0
原创粉丝点击