每日两道算法题 - 实现strStr函数(高频)

问题

给定两个字符串source和target,需在source中找出target出现的第一个位置,不存在则返回-1。
输入:source="hello" target="ll"
输出:2

思路

可以直接利用indexOf但是没有意义。 通过遍历,不断在source中截取字符串与target进行比较。

实现

class Solution {
    public int strStr(String source, String target) {
        int length = target.length();
        for(int index=0;index

但是这么实现运行会报错,会出现角标越界,问题点就在substring上,尾值会出现越界。
所以需要控制循环次数,因为截取时是用index+target长度。所以对于遍历次数应该改为source长度-target长度+1。从而避免越界出现

class Solution {
    public int strStr(String source, String target) {
        int length = target.length();
        for(int index=0;index
image.png

你可能感兴趣的:(每日两道算法题 - 实现strStr函数(高频))