nyoj 308-Substring(find 和 substr的用法)

http://acm.nyist.net/JudgeOnline/problem.php?pid=308

  题目意思是求一个子串 ,这个子串反转之后还是原串的子串。

 
#include<iostream>
#include<algorithm>
#include<string> 
using namespace std;
int main() {
  int n;
  cin >> n;
  while (n--) {
    bool flag = false;
    string str1, str2;
    cin >> str1;
    str2 = str1;
    reverse(str2.begin(), str2.end()); //反转字符串 
    for (int i = str1.size(); i > 0; i--) {  //
      for (int j = 0; j <= str1.size() - i; j++) { //遍历字符串 
        string t = str1.substr(j, i); //截取字符串 
        string::size_type pos = str2.find(t); //size_type相当于一个宏定义 
        if (pos != string::npos) { //string::npos理解为一个返回值为假的值 
          cout << t << endl;
          flag = true;
          break;
        } 
      }
      if (flag)break;
    }
  }
} 
//题目意思是求一个子串,该子串反转之后还是该字符串中的子串 
//思路是先把该字符串反转 然后再找         


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值