HJ85 最长回文串(下)

news2024/9/9 5:25:58

HJ85最长回文串

这个题目还挺奇怪的,主要是自己生成了一个bug,自己也没有意识到,但是代码运行起来产生了奇怪的结果自己就懵逼了

最后一版成功

#include <stdio.h>

int main() {
    char strArray[351] = {'\0'};
    while (scanf("%s", strArray) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to 
        // printf("%s\n", strArray);
        int len = strlen(strArray);
        int max = 0;
        int maxIndex = 0;
        for(int i = 0; i < len; i++)
        {
            if(strArray[i] == 'c' && strArray[i+1] == 'c' && strArray[i+2] == 'c' && strArray[i+3] == 'c')
            {
                int h = 0;
            }
            int flag = !(i >= 1 && strArray[i - 1] == strArray[i + 1]);
            if(i + 1 < len && strArray[i + 1] != strArray[i] && !(i >= 1 && strArray[i - 1] == strArray[i + 1]))
            {
                continue;
            }
            int count = 0;
            int slow = 0;
            int fast = 0;
            if(i > 1 && i + 1 < len && strArray[i - 1] == strArray[i + 1])
            {
                slow = i;
                fast = i;
                int diff = 0;
                while(slow >= 0 && fast < len && strArray[slow--] == strArray[fast++])
                {
                    // if()
                    // {
                    //     break;  
                    // }
                    // slow--;
                    // fast++;
                    diff++;
                }
                count = 2 * (diff - 1) + 1;
            }
            if(i + 1 < len && strArray[i + 1] == strArray[i])
            {
                slow = i;
                fast = i + 1;
                int diff = 0;
                while(slow >= 0 && fast < len && strArray[slow--] == strArray[fast++])
                {
                    // if(strArray[slow] != strArray[fast])
                    // {
                    //     break;    
                    // }
                    // slow--;
                    // fast++;
                    diff++;
                }
                count = 2 * diff;
            }
            if(count > max)
            {
                max = count;
                maxIndex = slow + 1;
            }
        } 

        strArray[maxIndex + max] = '\0';
        printf("%d\n", max);
    }
    return 0;
}

这个题目也挺烦人的,现在得到你的经验就是像这种快慢指针计数字符串长度的,最后用一个变量单独计数。不要用fast和slow来计数。感觉很麻烦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1961655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这几个高级爬虫软件和插件真的强!

亮数据&#xff08;Bright Data&#xff09; 亮数据是一款强大的数据采集工具&#xff0c;以其全球代理IP网络和强大数据采集技术而闻名。它能够轻松采集各种网页数据&#xff0c;包括产品信息、价格、评论和社交媒体数据等。 网站&#xff1a;https://get.brightdata.com/we…

ubuntu安装并配置flameshot截图软件

参考&#xff1a;flameshot key-bindins 安装 sudo apt install flameshot自定义快捷键 Settings->Keyboard->View and Customize Shortcuts->Custom Shortcuts&#xff0c;输入该快捷键名称&#xff08;自定义&#xff09;&#xff0c;然后输入command&#xff08;…

RFID物流智能锁在物流锁控领域的意义与应用

在当今全球化和电子商务迅速发展的时代&#xff0c;物流行业作为经济的重要支撑&#xff0c;面临着日益增长的安全、效率和管理需求。物流锁控作为保障货物在运输过程中安全与完整的关键环节&#xff0c;传统的机械锁和简单电子锁已经难以满足现代物流复杂多变的业务场景。 一、…

前缀表达式(波兰式)和后缀表达式(逆波兰式)的计算方式

缀是指操作符。 1. 前缀表达式&#xff08;波兰式&#xff09; &#xff08;1&#xff09;不需用括号&#xff1b; &#xff08;2&#xff09;不用考虑运算符的优先级&#xff1b; &#xff08;3&#xff09;操作符置于操作数的前面。&#xff08;如 3 2 &#xff09; 1.1 中…

3.5.3、查找和排序算法-插入类排序和选择类排序

术语说明 稳定&#xff1a;如果a原本在b前面&#xff0c;而ab,排序之后a仍然在b的前面&#xff1b; 不稳定&#xff1a;如果a原本在b的前面&#xff0c;而ab,排序之后a可能会出现在b的后面&#xff1b; 例如&#xff1a;数组{1,2,3,3,4,7,6}。如果排序后&#xff0c;两个3的位…

【嵌入式之RTOS】死锁问题详解

目录 一、什么是死锁 二、产生死锁的四个必要条件 三、避免死锁的方法 四、实际应用中的考虑 一、什么是死锁 死锁&#xff08;Deadlock&#xff09;是多任务或多线程环境中一个常见的问题&#xff0c;尤其是在实时操作系统&#xff08;RTOS&#xff09;中&#xff0c;如果…

kvm虚拟化平台部署

kvm虚拟化平台部署 kvm概念简介 kvm自linux2.6版本以后就整合到内核中&#xff0c;因此可以看做是一个原生架构. kvm虚拟化架构 硬件底层提供物理层面的硬件支持 linux&#xff08;host&#xff09;&#xff0c;就相当于这个架构中的宿主机&#xff0c;上面运行了多个虚拟机。…

替换后端国外身份目录服务,宁盾身份域管接管FileNet助力国产化升级

IBM FileNet 是一款优秀的企业内容管理解决方案&#xff0c;为客户提供了领先的文档管理和流程管理集成环境&#xff0c;被大量企业所采用。FileNet 需要使用企业级的目录服务器&#xff08;LDAP&#xff09;作为其用户管理系统&#xff0c;满足其认证和授权的需求。对于 LDAP …

最高200万!苏州成都杭州的这些AI政策补贴,你拿到了吗?

随着全球人工智能技术的迅猛发展&#xff0c;地方政府纷纷出台相关政策以抢占未来科技的制高点。苏州 成都 杭州这三个城市更是推出了一系列AI政策补贴&#xff0c;旨在通过多方面支持&#xff0c;推动本地AI产业的发展。本文将带你了解目前不完全统计到的苏州 成都 杭州三地AI…

【Vulnhub系列】Vulnhub_pipe 靶场渗透(原创)

【Vulnhub系列靶场】Vulnhub-pipe 靶场渗透 原文转载已经过授权 原文链接&#xff1a;Lusen的小窝 - 学无止尽&#xff0c;不进则退 (lusensec.github.io) 一、环境配置 1、解决IP扫描不到问题 2、打开虚拟机&#xff0c;并修改网络连接模式为【NAT】即可 二、信息收集 1…

Python实战——轻松实现动态网页爬虫(附详细源码)

大家好&#xff0c;我是东眠的鱼&#xff0c;专注原创&#xff0c;致力于用浅显易懂的语言分享爬虫、数据分析及可视化等干货&#xff0c;希望人人都能学到新知识。<文末附带精品籽料哦&#xff0c;也可以和博主一起学Python呀&#xff01;> 项目背景 有同学自学爬虫时…

前端vue3 巧妙的checkbox 选中框样式

我们 做前端页面交互效果的时候 我们会使用到 checkbox 复选框 做一些交互的效果 我是用的是 nut-ui 组件库中的 checkbox 组件 类似于这样的选中效果 假如 二选一的那种 可以 这样写 交互好看 而不是单纯的 checkbox 框 这里我就不使用 gif 图片了 大家应该都可以看懂的 …

A股继续震荡下行,成交量继续一蹶不振。

A股继续震荡下行&#xff0c;成交量继续一蹶不振。今天的A股&#xff0c;让人揪心不已&#xff0c;你们知道是为什么吗&#xff1f;盘面上出现1个重要信号&#xff0c;一起来看看&#xff1a; 1、今天两市低开低走&#xff0c;向下回补了2867点的缺口&#xff0c;让人揪心不已。…

计算机毕业设计选题推荐-基于司机信用评价的货运管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

CUDA_Occupancy_Calculator计算公式

CUDA_Occupancy_Calculator计算公式

6 Java的基本程序设计结构(基本语法5)- 面向对象进阶

文章目录 面向对象进阶一、 static 静态1 静态变量(1)基本定义和用法(2)静态变量内存图2 静态方法(1)基本定义和用法(2)工具类练习:按下面需求写一个工具类3 static注意事项4 重新认识main方法二、继承1 继承的概念2 继承的特点3 继承到底能继承父类中的哪些内容?4 继…

leetcode日记(63)颜色分类

感觉就是排序问题&#xff1f;我使用的是时间复杂度比较高的简单粗暴排序法&#xff0c;时间复杂度O&#xff08;n^2&#xff09;。 class Solution { public:void sortColors(vector<int>& nums) {int nnums.size();for(int i0;i<n;i){for(int ji1;j<n;j){if…

泛微OA BPM 全程数字化业务介绍、管理、财务一体化 数据业务架构图 上帝视角 02

III.泛微业务、管理、财务一体化过程介绍 IV.低代码平台及典型场景搭建过程 V.全程数字化运营平台价值总结 档案管理 档案接收,四性检测,快速可查找 重要:档案管理:架构总图 业务应用都在一个平台,确保档案实现100%归档 自动化档案采集:自动接收各类档案,如文书档案、合…

速通JS模块化规范

目录 1模块化概述 1.1什么是模块化&#xff1f; 1.2为什么需要模块化&#xff1f; 2有哪些模块化规范&#xff1f; 3导入与导出的概念 4CommonJS 规范 4.1初步体验 4.2导出数据 4.3导入数据 4.4扩展理解 4.5浏览器端运行 5ES6 模块化规范 5.1初步体验 5.2Node 中运…

操作系统课程设计:(JAVA)进程管理系统(附源码zip,jdk11,IDEA Ultimate2024 )

一.题目要求描述 本设计的目的是加深对进程概念及进程管理各部分内容的理解&#xff1b;熟悉进程管理中主要数据结构的设计及进程调度算法、进程控制机构、同步机构及通讯机构的实施。要求设计一个允许n个进程并发运行的进程管理模拟系统。 该系统包括有简单的进程控制、同步与…