首页 > 其他分享 >28. 找出字符串中第一个匹配项的下标 1

28. 找出字符串中第一个匹配项的下标 1

时间:2023-11-12 22:46:23浏览次数:32  
标签:下标 28 flag 字符串 haystack 指针

2023-11-12

28. 找出字符串中第一个匹配项的下标 - 力扣(LeetCode)

思路:

        1 暴力法

        2 双指针法

        3 更多思路看2

class Solution {
    public int strStr(String haystack, String needle) {
        //暴力法
        //双指针
 
        //双指针
        if(haystack.length()<needle.length()){
            return -1;
        }   
 
        int i=0;
        int j=0;
        while(i<haystack.length()){
            char c1=haystack.charAt(i);
            char c2=needle.charAt(j);
            if(c1!=c2){
                i++;
                continue;
            }
            int now=i;
 
            boolean flag=true;
 
            int t=i;
            t++;
            for(int k=1;k<needle.length();k++){
                if(t>=haystack.length()){   //注意越界
                    flag=false;
                    break;
                }
                char cc1=haystack.charAt(t);
                char cc2=needle.charAt(k);
 
                if(cc1!=cc2){
                    flag=false;
                    break;
                }
 
                t++;
            }
 
            if(flag){
                return now;
            }
 
            i++;
        }
        return -1;
 
 
 
    }
}

 

标签:下标,28,flag,字符串,haystack,指针
From: https://www.cnblogs.com/youye9527/p/17828047.html

相关文章

  • 55. 右旋字符串(第八期模拟笔试)
    2023-11-12题目页面(kamacoder.com)思路:Java很简单,先将字符串分割,再重新拼接,如果是在本串操作(Java不行哦)那么可以先将整体反转,在将2个子串分别反转importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){intk;......
  • 解决vue-element-admin安装报错npm ERR! code 128
    在安装vue-element-admin的npminstall的时候报错npmERR!code128npmERR!AnunknowngiterroroccurrednpmERR!commandgit--no-replace-objectsls-remotessh://[email protected]/nhn/[email protected]:Permissiondenied(publickey).npmERR!fatal:......
  • ABC328F题解
    原题链接洛谷题面提交记录闲话赛场就做了这道和A,喜提\(625\)大分。带权并查集练手题,有点像银河英雄传说。题目大意存在一个长度为\(N\)的数列\(X\),给定\(Q\)个三元组\((a_i,b_i,d_i)\),定义一个好集合为集合\(S\subseteq\{1,2,\dots,Q\}\),使得所有\(x\inS\)满......
  • 字符串哈希
    方法通常采用多项式Hash的方法,也就是说将字符串看做一个b进制的数。进制数选择(大于所有字符对应的数字的最大值,且为质数),如:1312331333119260817等。模数选择(双\(10^9\)的模数或者直接自然溢出):1926081719660813等。然后就可以愉快的哈希了!code(自然溢出)ullhashh(s......
  • python字符串操作
    python执行python脚本第一行#!/usr/bin/python 只对Linux/Unix用户适用,用来指定本脚本用什么解释器来执行。有这句时,加上执行权限后,可以直接用 ./ 执行,不然会出错,因为找不到python解释器。#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python......
  • 28.循环语句for in
    循环语句-for-inPython并没有提供类似C语言中那种传统意义上的for循环,而是提供了一种专门处理字符串,元组,列表,字典等可迭代的序列类型数据的增强型for循环。遍历可迭代对象使用for-in循环处理可迭代对象,可以使操作过程变的极其简单。遍历字符串s="HelloHogworts!"forcin......
  • 二进制安装Kubernetes(k8s)v1.28.3
    二进制安装Kubernetes(k8s)v1.28.3https://github.com/cby-chen/Kubernetes开源不易,帮忙点个star,谢谢了介绍kubernetes(k8s)二进制高可用安装部署,支持IPv4+IPv6双栈。我使用IPV6的目的是在公网进行访问,所以我配置了IPV6静态地址。若您没有IPV6环境,或者不想使用IPv6,不对主机进行......
  • 【9.0】Go语言基础之字符串
    【一】字符编码引入https://www.cnblogs.com/dream-ze/p/17826956.html【二】字符串操作【1】获取字符串的字节(byte)(1)英文字符packagemainimport"fmt"funcmain(){ //字符串 //【1】单独获取每个字符串的字节byte //定义字符串 word:="Helloworld!" fo......
  • JVM系列-第9章-StringTable(字符串常量池)-cnblog
    title:JVM系列-第9章-StringTable(字符串常量池)tags:-JVM-虚拟机categories:-JVM-1.内存与垃圾回收篇keywords:JVM,虚拟机。description:JVM系列-第9章-StringTable(字符串常量池)。cover:'https://gitee.com/youthlql/randombg/raw/master/logo/jvm.png......
  • 【补充】字符串的编码
    【一】ASCII码计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。......