NBUOJ 1969 統計元字串數目 字串處理

2021-10-06 10:47:01 字數 1015 閱讀 4416

23世紀的一天,甬江邊出現了白鷺外的一種新品種,雄鳥非常愛惜雌鳥,所以它們採用一種集體一字型飛行方式,用a代表雌鳥,b代表雄鳥,他們總是排成a,aba,ababa,abababa,abababababa……的形式,這些一起飛的鳥稱為乙個飛行單元,但在某一天,你看到了天上上百萬隻鳥一字型飛過,那麼請你數數,這裡有多少個飛行單元呢?

只有一組,代表你看到的鳥的排列,注意,乙個飛行單元中不會找到別的飛行單元中的鳥。

即乙隻鳥只屬於乙個飛行單元,飛行單元也是乙個乙個排列的 。鳥的數目不超過10000000

輸出飛行單元的數目

aabababababaabaababa

統計字串中符合某種規律的子串

仔細觀察題目中a,aba,ababa,abababa,abababababa…的飛行單元,

我們發現這些單元(串)的第乙個字元和最後乙個字元都是字元a,中間字元b和字元a交替出現。

我們可以劃分出幾個狀態,tp=0代表當前字元要麼為鳥排列的第乙個字元,之前還沒有任何字元,要麼代表之前字串不再有可與當前字元相聯絡的字元a,但再前面乙個字元也是b。tp=1代表當前字元前乙個字元是a。tp=2代表當前字元前乙個字元是b,再前面乙個字元也是b。

鳥排列的最後乙個字串需要在迴圈外特殊處理

#include

#include

#include

#include

#include

using

namespace std;

char a[

10000005];

intmain()

else tp=1;

}else}}

if((a[len-1]

=='a'

&&tp==1)

||(a[len-1]

=='b'

&&tp==2)

) sum++

;printf

("%d\n"

,sum)

;return0;

}

統計字串

題目 計算字串中字母 數字 其他字元的個數。datas segment buf db 80 len db string db 80 dup 32 crlf db 13,10,displ db the amount of letters is 13,10,dispd db the amount of ...

字串統計

演算法訓練 字串統計 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且...

字串統計

time memory limit 1000 ms 32768 k submitted 2163 accepted 973 對於給定的乙個字串 長度小於1000 統計其中大小寫字母字元出現的次數。輸入資料有多行,第一行是乙個整數n,表示測試例項的個數,後面跟著n行,每行包括乙個由字母和數字組成的字串...