ブルーブリッジカップ---ネックレスを改善します

記事のディレクトリ

タイトル

ここに画像を挿入説明
ここに画像を挿入説明

思考

前記被験体、ローカルカット、C ++がSUBSTR関数のいずれかから入力された文字列によれば、パラメータは開始インデックス及び所望の長さです。具体的な紹介は行って見て、このブログができ
SUBSTR機能を導入しました
。この機能により、我々は成功したオフの文字列を入力することができますし、別の場所で、合併再度。ただ、いくつかの長さの期間の後に依頼する質問の前意味の長さの残りの部分を追跡する必要があるとラインを再追加。

コード

#include<iostream>
#include<string.h>
#include<cmath>
using namespace std;
// string s="abccdefgh";
// cout<<s.substr(4)<<endl;
// cout<<s.substr(0,4);
string n;


int get_string(string s,int i){
    string s1=s.substr(i)+s.substr(0,i);
    //cout<<s1<<endl;
    int j1=0,j2=0;
    char c1='w';
    char c2='w';
    for(int k=0;k<s1.length();k++){
        if(s1[k]!=c1){
            c1=s1[k];
            break;
        }
    }

    for(int k=s1.length()-1;k>0;k--){
        if(s1[k]!=c2){
            c2=s1[k];
            break;
        }
    }


    for(int j=0;j<s1.length();j++){
        if(s1[j]==c1||s1[j]=='w')
            j1++;
        else{
            break;
        } 
    }

    for(int j=s1.length()-1;j>0;j--){
        if(s1[j]==c2||s1[j]=='w')
            j2++;
        else{
            break;
        }
    }


    if(j1==s1.length())
        return j1;
    else{
        return j1+j2;
    }
}


int main(){
    cin>>n;
    int M=0;
    for(int i=0;i<n.length();i++){
        int m=get_string(n,i);
        M=M>m?M:m;
    }
    cout<<M<<endl;
    return 0;
}

ここに画像を挿入説明
ここに画像を挿入説明

アルゴリズムブラシの上に本当に多くの質問、停止しないでください

公開された85元の記事 ウォン称賛55 ビュー20000 +

おすすめ

転載: blog.csdn.net/shelgi/article/details/104190944