华为OD机试-- 寻找相同子串
题目
给你两个字符串 t 和 p ,要求从 t 中找到一个和 p 相同的连续子串,并输出该字串第一个字符的下标。
输入描述
输入文件包括两行,分别表示字符串 t 和 p ,保证 t 的长度不小于 p ,
且 t 的长度不超过1000000,p 的长度不超过10000。
输出描述
如果能从 t 中找到一个和 p 相等的连续子串,则输出该子串第一个字符在t中的下标(下标从左到右依次为1,2,3,…);
如果不能则输出”No”;
如果含有多个这样的子串,则输出第一个字符下标最小的。
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
AVERDXIVYERDIAN
RDXI
输出
4
思路
1:indexOf()函数可以直接使用,算是简单题了吧。
2:常用函数可以记住
s1.length() -->比较字符长度
String s2=s1.substring(2); -->取出从第2个之后开始的东西 从0开始取出>> 及解决方法
int i=s2.indexOf("查找我")); -->返回索引到的位置从 下标0开始 找不到返回-1
s1.contains(s91); -->判断s9中是否包含s91的这个字符串 true
s1.equalsIgnoreCase(s61) -->比较是否相同但是不区分大小写
s1.isEmpty() -->判断字符是否为空
s1.charAt(2) -->找string类型的第2位 从第0位开始
s1.trim() -->去掉前面的空格和后面的空格
s1.toLowerCase() -->大写转小写
s1.toUpperCase() -->小写转大写
s1.compareTo(s71) -->比较有多少个数不相同 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 实现:https://renjie.blog.csdn.net/article/details/130786202
Python实现:https://renjie.blog.csdn.net/article/details/128356686
C++ 实现:https://renjie.blog.csdn.net/article/details/127152203
JavaScript实现:https://renjie.blog.csdn.net/article/details/130786211
C实现:https://renjie.blog.csdn.net/article/details/129190260

