算法题目
在实际的字符串处理场景中,我们常常需要在一个较长的字符串里找到与另一个较短字符串相同的连续子串,并确定其位置。现在给定你两个字符串t
和p
,你的任务是从字符串t
中找出一个和字符串p
完全相同的连续子串,然后输出这个子串的第一个字符在字符串t
里的下标。
输入方面,会包含两行内容,第一行是字符串t
,第二行是字符串p
。这里要保证字符串t
的长度不小于字符串p
,同时字符串t
的长度不会超过1000000,字符串p
的长度不会超过10000。
输出规则如下:要是能在字符串t
中找到和字符串p
相等的连续子串,就输出该子串第一个字符在字符串t
中的下标,而且下标是从1开始计数的。要是找不到这样的子串,就输出No
。要是存在多个符合条件的子串,那么输出第一个字符下标最小的那个子串的下标。
例如,当输入为:
AVERDXIVYERDIAN
RDXI
在字符串t = "AVERDXIVYERDIAN"
中,从第4个字符开始的连续子串RDXI
与字符串p = "RDXI"
相同,所以输出为: