【程式設計題】 醜陋的字串

Roninwz發表於2017-09-07
牛牛喜歡字串,但是他討厭醜陋的字串。對於牛牛來說,一個字串的醜陋值是字串中相同連續字元對的個數。比如字串“ABABAABBB”的醜陋值是3,因為有一對"AA"和兩對重疊的"BB"。現在給出一個字串,字串中包含字元'A'、'B'和'?'。牛牛現在可以把字串中的問號改為'A'或者'B'。牛牛現在想讓字串的醜陋值最小,希望你能幫幫他。 
輸入描述:
輸入包括一個字串s,字串長度length(1 ≤ length ≤ 50),字串只包含'A','B','?'三種字元。


輸出描述:
輸出一個整數,表示最小的醜陋值

輸入例子:
A?A

輸出例子:

0

#include <iostream>
using namespace std;


int main()
{
    string str;
    cin>>str;
    int nSize = str.length();
    if(nSize<2)
    {
        cout<<0<<endl;
        return 0;
    }
    int nCount = 0;
    int ii=0;
    //處理開頭為?的情況
    while(ii<nSize && str[ii]=='?')
        ii++;
    //都是‘?’
    if(ii==nSize)
    {
        cout<<0<<endl;
        return 0;
    }
    
    for( ;ii<nSize-1;++ii)
    {
        if(str[ii]=='?')
        {
            str[ii] = str[ii-1]=='A'? 'B':'A';
        }
        if(str[ii]==str[ii+1])
            nCount++;
    }
    
    cout<<nCount<<endl;

}



轉載來自:http://blog.csdn.net/u013291818/article/details/73745309

相關文章