從前有乙個漁夫抓到了一條特別的魚,放走了。考試時打了個純暴力,竟然騙了70= =漁夫再次抓到了這條魚,正要再次放走之時,這條魚吐出了一片迷霧,迷霧散去以後,漁夫不見了。
漁夫睜開眼,發現自己到了乙個石碑面前,碑上有一行小寫英文本串s,下面寫著:「汝等既有護生之念,應是善良之人,理當授以嘉獎。但是為了證明你的善良,你需要展現你的智慧型,以確保吾所見之善良,並非出於汝之愚笨。上面的字串,你若於其中找到最長的子串,使得這個子串既出現在字首,又出現在字尾,還出現在字串的中間,也就是既非字首又非字尾的位置,則該石碑會將其所藏之物拱手相送。」
漁夫聽完以後,可謂一臉懵逼,遂將這個問題分享給你,希望你能夠解決。若能解決,漁夫願意拿出10,000,000,000,000 mod 250 元,作為解決這個問題的報酬。
第一行是乙個數字q,表示這個問題有q組不同問題。
接下來q行每行乙個由小寫英文本母組成的字串s,意義見於上文。
輸出共q行,每行乙個字串,表示對於每組問題,所求的字串,如果不存在長度大於0且滿足要求的字串,就改成輸出」---」(不包含引號)
niconiconi
ni
正解1:
kmp亂搞,求一下next陣列,記錄在1~n-1哪些next出現過,在n一直跳next,直到出現過即是答案(話說這是標算吧啊喂)
正解2:
hash亂搞(這才是真正的亂搞吧啊喂),先用p進製搞出整個的hash值,然後從後往前列舉終點,然後用這個字首去匹配
1 #include2 #include3 #include4 #include5view codeusing
namespace
std;
6 typedef unsigned long
longl;7
const
int p=233;8
char s[100005
];9 l xp[100005],h[100005
];10
intlen;
11 vectorpo;
12 inline bool judge(int
pos)
26return
false;27
}28intmain()52}
53if(!tmp)
54 puts("
---"
);55
else60}
61 }
268 缺失數字
排序,不多解釋,估計都能想到。func missingnumber nums int int if nums 0 0for i 1 i len nums i return 1 借用雜湊表 不多說,估計也都能想到 func missingnumber nums int int for v range ...
268 缺失數字
難度 簡單 題目描述 解題思路 最簡單的可以用桶計數或者排序,然後找到沒出現過的數字。但是題目要求線性時間複雜度,所以不能排序,又只使用額外常數空間,也不能用桶計數。因為這個題裡資料範圍是確定的,而且只缺失乙個正整數,所以可以先計算0 n的和,然後依次減去陣列裡的元素,剩下來的就是沒出現過的。考慮到...
268 丟失的數字
給定乙個包含 0,n 中 n 個數的陣列 nums 找出 0,n 這個範圍內沒有出現在陣列中的那個數。高階 你能否實現線性時間複雜度 僅使用額外常數空間的演算法解決此問題?示例 1 輸入 nums 3,0,1 輸出 2 解釋 n 3,因為有 3 個數字,所以所有的數字都在範圍 0,3 內。2 是丟失...