字串演算法題(會持續更新)

2021-10-12 01:22:55 字數 1040 閱讀 4206

在刷題的過程中,我發現幾乎所有跟字串子串有關的題,我全都不會,因此以後會在這篇下面,總結與字串有關的演算法題。

題目描述

在慶祝祖國母親70華誕之際,老師給小樂樂出了乙個問題。大家都知道china的英文縮寫是chn,那麼給你乙個字串s,你需要做的是統計s中子串「chn」的個數。

子串的定義:存在任意下標a < b < c,那麼「s[a]s[b]s[c]」就構成s的乙個子串。如「abc」的子串有「a」、「b」、「c」、「ab」、「ac」、「bc」、「abc」。

輸入描述:輸入只包含大寫字母的字串s。(1 ≤ length ≤ 8000)

輸出描述:輸出乙個整數,為字串s中字串「chn」的數量。

示例1

輸入

cchnchn

輸出

7示例2

輸入

cchnchnchnchn

輸出

30解題思路

由於c、h、n三個字母出現的順序是一定的,因此

可以用三個變數c,h,re分別表示到目前為止,c、ch、chn出現的數量。

如果出現了c,那麼c++;

如果出現了h,那麼h+=c,因為這是乙個新的h,和所有之前存在的c,都可以組成乙個新的ch;

如果出現了n,那麼re+=h,因為這是乙個新的n,和所有之前存在的ch,都可以組成乙個新的chn。

多麼優秀的思路啊!

**

#include

#include

#include

using

namespace std;

intmain()

cout

}

字串各類模板(持續更新)

kmp string s int nxt 100000 計算nxt陣列 時間複雜度o n void cal next string s int id min i,j id表示最小位置的起點 string tem tem s.substr id,len id s.substr 0,id cout mi...

Python的字串操作 持續更新

python的字串操作每每使用都讓我舒暢不已,真的人生苦短我用python啊!但是也有許多字串操作功能python並沒有提供直接的方法讓我們使用,只能在進行封裝函式來使用,我將從最簡單的字串方法介紹,既可以作為學習資料,在使用的使用也可以愉快地過來複製咯。標準指令碼化賦值。name siri 訪問檢...

演算法題(Math) 持續更新

1 找第n位數字。無限數列1,2,3,4,5,6,7,8,9,10,11,12.第一位是1,第五位是5,第十位是1 10的第首位 第十一位是0 10的末位 第十二位是1 11的首位 三步 1 找到第n位所在數字的長度。2,找到第n位所在的具體數字。3,返回第n位。public int findnth...