復旦13考研機試真題 1 字串匹配

2021-10-05 12:42:43 字數 1119 閱讀 9813

對於主串m和模式串p,找到p在m**現的所有子串的第乙個字元在p中的位置。p中第乙個字元所在的位置為0。首行的數字表示有多少組字串。字元長度在106以內。

[輸入及示例]

2

ababababa

ababa

aaaaa

[輸出及示例]

0 2 4

0 1

(相鄰位置之間用乙個空格隔開)

分析:這個題目我在牛客網上見到過,有人用stl中string的find函式也可以ac; 但是我查了一下find的時間複雜度應該是o(m*n), 按理來說極端測試用例應該過不了才對;這個題目我就兩個解法都寫一下吧,還有一種用kmp演算法,時間複雜度o(m+n);

解法一:

#include

#include

#include

using

namespace std;

intmain()

for(

int i =

0; i < v.

size()

; i++

)printf

("\n");

}return0;

}

解法二:

#include

#include

#include

#include

using

namespace std;

int nnext[

1000010];

void

buildnext

(const string& a)

else

j = nnext[j];}

}int

main()

else

k = nnext[k];if

(k == lb)

}for

(int i =

0; i < v.

size()

; i++

)printf

("\n");

}return0;

}

復旦18年考研機試真題(1) 求眾數

題目 求眾數。眾數就是乙個序列 現次數最多的數字。如果不唯一,則輸出小的那個值。輸入的第一行為正整數n,代表有n個數字,1 n 105 第二行為n個數字,每個數字在 int 範圍內。要求輸出眾數。輸入 第乙個代表有幾個數字 8 10 3 8 8 3 2 2 2輸出 2分析 用map來儲存數字對應的次...

華科機試(2) 字串

對給定的乙個字串,找出有重複的字元,並給出其位置,如 abcaaab12ab12 輸出 a,1 a,4 a,5 a,10,b,2 b,11,1,8 1,12,2,9 2,13。輸入包括乙個由字母和數字組成的字串,其長度不超過100。可能有多組測試資料,對於每組資料,按照樣例輸出的格式將字元出現的位置...

華為機試26 字串排序

題目描述 編寫乙個程式,將輸入字串中的字元按如下規則排序。規則 1 英文本母從 a 到 z 排列,不區分大小寫。如,輸入 type 輸出 epty 規則 2 同乙個英文本母的大小寫同時存在時,按照輸入順序排列。如,輸入 baba 輸出 aabb 規則 3 非英文本母的其它字元保持原來的位置。如,輸入...