leetcode最长回文子串_leetcode反转链表

leetcode最长回文子串_leetcode反转链表实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

实现 strStr() 函数。

给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。

示例 1:

输入: haystack = "hello", needle = "ll"
输出: 2
示例 2:

输入: haystack = "aaaaa", needle = "bba"
输出: -1
说明:

当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。

对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。

题解

  1. kmp算法
class Solution { 
   
public:
    void getNext(string needle,vector<int>&next){ 
   
        next[0] = -1;
        int i = -1,k = 0;
        while(k < needle.size() - 1){ 
   
            while(i != -1 && needle[k] != needle[i])i = next[i];
            if(i == -1 || needle[i] == needle[k]){ 
   
                next[++ k] = ++ i;
            }
        }
    }
    int strStr(string haystack, string needle) { 
   
        if(needle == "")return 0;
        vector<int>next(needle.size());
        getNext(needle,next);
        for(int i = 0;i < next.size();i ++){ 
   
            cout<<next[i]<<endl;
        }
        int j = 0;
        for(int i = 0;i < haystack.size();i ++){ 
   
            while(j != -1 && needle[j] != haystack[i])j = next[j];
            j ++;
            if(j == needle.size())return i - needle.size() + 1;
        }
        return -1;
    }   
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168881.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux发邮件2种常见客户端命令[通俗易懂]

    linux发邮件2种常见客户端命令[通俗易懂]mail命令格式:mail-s”标题”邮件地址<文件echo”正文”|mail-s”标题”邮件地址例如:mail-s”liwen”1935845114@qq.com<hostsmutt命令mutt-s”标题”邮件地址<文件命令发邮件需要邮件服务的支持mail默认是调用本机MTA发送邮件的,这意味着需要在本机上安装sendmail或postfixCentos5默认使用Sendmail邮件服务,开启方式/etc/init.d…

    2022年10月20日
  • 万物互联时代,警惕黑客“帮凶”

    万物互联时代,警惕黑客“帮凶”

    2022年3月4日
  • macpycharm2022.01激活码[最新免费获取]

    (macpycharm2022.01激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlCJM5ZJBPHS-eyJsaWNlbnNlSW…

    2022年3月31日
  • LED灯上的ASEMI整流桥MB10F怎么检测是否正常

    LED灯上的ASEMI整流桥MB10F怎么检测是否正常编辑-Z我的LED灯盘上有一个桥式整流桥,它的型号是:MB10F,那么什么是整流,整流是做什么的?LED灯上的ASEMI整流桥MB10F怎么检测是否正常?整流电路就是将交流电转换成直流电。为什么要将交流电转换为直流电?说白了就是负载需要直流电才能工作,比如我们常见的直流电机、电解电源、手机等。型号:MB10F封装:MBF-4(SOP-4)特性:小方桥、贴片桥堆、超薄体电性参数:1A1000V芯片材质:GPP正向电流(Io):1A芯片个数:4正向电压(VF)

    2022年8月24日
  • 细说Mammut大数据系统测试环境Docker迁移之路

    细说Mammut大数据系统测试环境Docker迁移之路

    2021年6月16日
  • idea2022.01.13激活码永久[最新免费获取]2022.02.05

    (idea2022.01.13激活码永久)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html76VF8VOVJM-eyJsaWNlbnNlSW…

    2022年4月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号