相同字母異序詞 向量雜湊

2021-09-25 09:25:19 字數 1296 閱讀 9173

題目

ayla有兩個字串a和b,每個字串長度為l,每個字串均由大寫英文本母組成。

她想知道有多少個不同的a的子串可以在b中找到乙個子串是它的「相同字母異序詞」。

如果兩個字串的長度相同,組成字串的字母和每個字母出現的次數也都相同,則這兩個字串為「相同字母異序詞」。

例如,aabc和abac。

輸入格式

第一行包含整數t,表示共有t組測試資料。

每組資料第一行包含整數l,表示字串的長度。

接下來兩行,每行乙個長度為l的由大寫字母構成的字串,分別表示字串a和字串b。

輸出格式

每組資料輸出乙個結果,每個結果佔一行。

結果表示為「case #x: y」,其中x為組別編號(從1開始),y為滿足條件的子串數。

資料範圍

1≤t≤100

1≤l≤50

輸入樣例:

6

3abb

bab3

bababb

6catyyy

***tac

9sub******

subbususb

4aaaa

aaaa

19inakickstartfactory

輸出樣例:

case #1: 5

case #2: 6

case #3: 6

case #4: 6

case #5: 10

case #6: 9

樣例解釋

在樣例#1中,l = 3,a = abb,b = bab,a有6個子串,如下:

所以答案是5。

字串長度比較小,我們可以暴力去列舉區間左右端點,然後統計這個區間每個字元出現的次數,然後對陣列進行雜湊。

**:

#includeusing namespace std;

typedef unsigned long long ull;

ull p=131;

int main()

}int ans=0;

for(int i=0;i}

printf("case #%d: %d\n",cas,ans);

}return 0;

}

前端練習09 同字母異序

同字母異序指的是兩個字串字母種類和字母的數量相同,但是順序可能不同。完成isanagram,接受兩個字串作為引數,返回true或者false表示這兩個字串是否同字母異序。例如 isanagram anagram nagaram return true.isanagram rat car return...

leetcode 字母異或詞的判斷以及分組

問題1 給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。判斷思路 根據排序後的結果是否相同,判斷是否符合要...

LeetCode 49 字母異位詞分組 雜湊

難度 中等 給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。包含的字母相同,但是排列可以不同的字串實際...