【编程题-错题集】非对称之美(找规律 / 贪心)

简介: 【编程题-错题集】非对称之美(找规律 / 贪心)

牛客对应题目链接:非对称之美 (nowcoder.com)


一、分析题目

找规律:

  1. 判断是否全都是相同字符。
  2. 判断本身是否是回文。
  • 如果这个字符串每个字符相同,不存在非回文子串,直接返回 0。
  • 如果这个字符串不是回文,输出字符串长度。
  • 贪心:如果这个字符串是回文,输出这个字符串长度 -1。(重点:最后返回 n-1 的含义)

二、代码

//值得学习的代码
#include <iostream>
#include <string>
 
using namespace std;
 
int n;
string s;
 
int fun()
{
    // 1. 判断是否全都是相同字符
    bool flag = false;
    for(int i = 1; i < n; i++)
    {
        if(s[i] != s[0])
        {
            flag = true;
            break;
        }
    }
    if(flag == false) return 0;
 
    // 2. 判断本⾝是否是回⽂
    flag = true;
    int left = 0, right = n - 1;
    while(left < right)
    {
        if(s[left] == s[right])
        {
            left++;
            right--;
        }
        else
        {
            flag = false;
            break;
        }
    }
 
    if(flag) return n - 1;
    else return n;
}
 
int main()
{
    cin >> s;
    n = s.size();
 
    cout << fun() << endl;
 
    return 0;
}

三、反思与改进

拿到这道题时,我想起了之前写过的5. 最长回文子串 - 力扣(LeetCode),不过它是回文(对称)的,这里要求找的是最长非回文字串的长度,所以我就按着之前的思路去思考,也是将其分为奇数长度和偶数长度的扩展来想。不过,我发现这种思路会导致一些重复字符组成的子串没法得出正确结果,但又不知道该从哪里改起,所以需要转换一下思路。

这道题目没有太多其它的技巧,就是直接找规律,也可以说是贪心,是从非回文的特性来找出非回文的最长字串长度。


相关文章
|
存储 程序员 Python
Python浪漫520表白代码
Python浪漫520表白代码
1421 0
|
20天前
|
弹性计算 人工智能 Linux
阿里云最新价格最便宜云服务器解析:轻量应用服务器抢购38元,云服务器99元和199元区别与选购指南
本文针对个人站长、学生与小微企业的低成本上云需求,系统梳理阿里云38元/年轻量服务器、99元/年e实例、199元/年u1实例三款低价产品的配置差异、抢购规则、续费政策与适用场景,拆解新用户资格、峰值带宽、续费同价等核心细节,避开低价套餐常见坑点,帮助不同需求的用户精准匹配高性价比云服务器选型方案。
|
22天前
|
人工智能 编解码 API
Wan3.0‑Video深度实战解析:30秒长叙事、文档直转视频与API完整接入指南
AI视频生成技术已经完成一轮重要迭代,行业已经告别只能产出数秒碎片化镜头的阶段,逐步进化到可以输出完整叙事片段的生产力时代。Wan3.0‑Video作为新一代一体化全能视频生成模型,依托百炼平台对外提供云端推理服务。该模型最标志性的突破就是原生支持单次生成最长30秒高清视频,并且实现办公文档直接输入生成视频的差异化能力,能够解析PDF、PPT、DOC、XLS、MD等多种格式文件,真正做到“万物皆可生视频”。
316 0
|
23天前
|
缓存 JSON 自然语言处理
吃透Qwen3.8‑Max/3.7‑Max/3.7‑Plus/Flash系列:能力差异、代码示例与落地选型全流程
随着大模型智能体业务快速落地,越来越多开发者面临同系列多模型选型难题。百炼平台上线的Qwen3.8‑Max、Qwen3.7‑Max、Qwen3.7‑Plus、Qwen3.7‑Flash、Qwen3.8‑Flash五款模型,覆盖复杂深度推理、长周期智能体、多模态GUI操控、高吞吐低成本线上业务等众多场景。不同模型在底层架构、上下文窗口、模态支持、代码编写能力、工具调用稳定性、推理计费成本方面存在显著差异。
354 0
|
9月前
|
人工智能 自然语言处理 搜索推荐
2026年AI数字人技术实战指南:企业如何高效部署
AI数字人正加速迈向产业落地新阶段。本文系统解析其技术架构、场景匹配与实现路径,涵盖自研引擎、云平台应用及垂直领域实践,助开发者、创作者与企业把握技术红利,规避常见误区,布局未来人格化、轻量化与合规化发展方向。
|
6月前
|
数据采集 安全 数据安全/隐私保护
价值导向型:搞懂高质量代理与动态IP,让网络操作更高效
在网络操作中,代理IP与动态IP是高频出现的两个概念,很多人容易混淆两者的用途。简单来说,高质量代理IP主打稳定与安全,动态IP主打灵活与多变,二者既有本质区别,也有交叉应用的场景。本文结合实际使用需求,拆解两者的核心差异、应用场景及内在联系,帮大家快速分清二者区别,精准选择适合自己的IP服务,避免踩坑。
|
10月前
|
Linux Go 虚拟化
docker
Docker是基于Go语言的开源容器技术,实现“一次镜像,处处运行”。它通过容器化隔离应用,对比传统虚拟机更轻量、启动更快。核心组件包括镜像、容器和仓库,利用宿主机内核高效运行,广泛应用于开发、部署与运维全流程。
|
监控 安全 网络安全
如何构建安全的网络基础设施:全面指南
【8月更文挑战第2天】构建安全的网络基础设施是一个复杂而持续的过程,需要企业从规划、设计、实施到维护等各个环节都给予足够的重视和投入。通过全面的风险评估、合理的安全策略、科学的设计方案、严格的实施流程和持续的监控优化,可以为企业打造一个坚不可摧的网络安全防线。在这个过程中,企业应始终保持对新技术和新威胁的敏锐洞察力,不断优化和完善安全体系,确保网络基础设施的安全稳定运行。
|
缓存 自然语言处理 API
Ascend推理组件MindIE LLM
MindIE LLM是基于昇腾硬件的大语言模型推理组件,提供高性能的多并发请求调度与优化技术,如Continuous Batching、PageAttention等,支持Python和C++ API,适用于高效能推理需求。其架构包括深度定制优化的模型模块、文本生成器和任务调度管理器,支持多种模型框架和量化方式,旨在提升大规模语言模型的推理效率和性能。
|
存储 缓存 前端开发
ATB算子实现原理解读
本文详细介绍了Ascend Transformer Boost(ATB)加速库中三种类型算子的执行流程及其与CANN中其他算子的区别。文章首先概述了ATB算子的实现步骤,接着深入解析了单算子和图算子的执行流程,包括kernel图构建、输入准备、内存计算、tiling数据处理及任务下发等环节。此外,还探讨了ATB在host侧性能优化上的几种机制,如Tiling Cache、Setup与InferShape复用、Runner Pool等,以及ATB中的内存优化与管理策略。最后,介绍了Context类的功能和作用,包括它如何管理ATB内部的各种公共资源。

热门文章

最新文章