華為OD機試-- 尋找相同子串

題目
給你兩個字符串 t 和 p ,要求從 t 中找到一個和 p 相同的連續(xù)子串,并輸出該字串第一個字符的下標(biāo)。
輸入描述
輸入文件包括兩行,分別表示字符串 t 和 p ,保證 t 的長度不小于 p ,
且 t 的長度不超過1000000,p 的長度不超過10000。
輸出描述
如果能從 t 中找到一個和 p 相等的連續(xù)子串,則輸出該子串第一個字符在t中的下標(biāo)(下標(biāo)從左到右依次為1,2,3,…);
如果不能則輸出”No”;
如果含有多個這樣的子串,則輸出第一個字符下標(biāo)最小的。
示例1 輸入輸出示例僅供調(diào)試,后臺判題數(shù)據(jù)一般不包含示例
輸入
AVERDXIVYERDIAN
RDXI
輸出
4
思路
1:indexOf()函數(shù)可以直接使用,算是簡單題了吧。
2:常用函數(shù)可以記住
s1.length() -->比較字符長度
String s2=s1.substring(2);? ? ?-->取出從第2個之后開始的東西 從0開始取出>> 及解決方法
int i=s2.indexOf("查找我"));? ?-->返回索引到的位置從 下標(biāo)0開始? 找不到返回-1
s1.contains(s91);? ? ? ? ? ? -->判斷s9中是否包含s91的這個字符串? true
s1.equalsIgnoreCase(s61)? ? -->比較是否相同但是不區(qū)分大小寫
s1.isEmpty()? ? ? -->判斷字符是否為空
s1.charAt(2)? ? ? -->找string類型的第2位 從第0位開始
s1.trim()? ? ? ? ?-->去掉前面的空格和后面的空格
s1.toLowerCase()? -->大寫轉(zhuǎn)小寫
s1.toUpperCase()? -->小寫轉(zhuǎn)大寫
s1.compareTo(s71) -->比較有多少個數(shù)不相同? s7所有加起來的ask碼值-s71所有加起來的ask碼值 返回askll碼值
s1.replace('山','中');? ? ? ?-->吧所有的山換成中支持換多個字符
int i=s1.lastIndexOf("ab"); -->返向查找
正則 boolean u1=u2.matches("0512-\\d{7,8}"); -->判斷是否是0512開頭并且有7位 返回true或者flase
Java 實現(xiàn):https://renjie.blog.csdn.net/article/details/130786202
Python實現(xiàn):https://renjie.blog.csdn.net/article/details/128356686
C++ 實現(xiàn):https://renjie.blog.csdn.net/article/details/127152203
JavaScript實現(xiàn):https://renjie.blog.csdn.net/article/details/130786211
C實現(xiàn):https://renjie.blog.csdn.net/article/details/129190260