對於主串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 非英文本母的其它字元保持原來的位置。如,輸入...