欢迎光临散文网 会员登陆 & 注册

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

2023-10-05 09:26 作者:天生完美  | 我要投稿

题目

给你两个字符串 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

华为OD机试-- 寻找相同子串的评论 (共 条)

分享到微博请遵守国家法律