华为OD机试-- 寻找相同子串

95 阅读2分钟

题目

给你两个字符串 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 实现:2023华为od统一考试B卷【寻找相同子串】Java 实现

Python实现:华为od统一考试B卷【寻找相同子串】Python 实现

C++ 实现:华为od统一考试B卷【寻找相同子串】C++ 实现

JavaScript实现:华为od统一考试B卷【寻找相同子串】JavaScript 实现

C实现:2023 华为OD机试(C语言)真题【A卷+B卷】

01e5925cc82755a8012141686c0980.jpg@1280w_1l_2o_100sh.jpg