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

server/2024/10/19 7:25:56/

牛客对应题目链接:非对称之美 (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),不过它是回文(对称)的,这里要求找的是最长非回文字串的长度,所以我就按着之前的思路去思考,也是将其分为奇数长度和偶数长度的扩展来想。不过,我发现这种思路会导致一些重复字符组成的子串没法得出正确结果,但又不知道该从哪里改起,所以需要转换一下思路。

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


http://www.ppmy.cn/server/38258.html

相关文章

C++:继承-继承权限

在C中&#xff0c;类的权限分为公有、私有和保护三种。这些权限控制了类的成员&#xff08;数据成员和成员函数&#xff09;对外部代码的可见性和访问性。 公有&#xff08;public&#xff09;权限&#xff1a; 在公有权限下声明的成员可以被类的外部代码直接访问&#xff1b;公…

基于微信小程序的网上购物系统的设计与实现

基于微信小程序的网上购物系统的设计与实现 “Design and Implementation of an Online Shopping System based on WeChat Mini Program” 完整下载链接:基于微信小程序的网上购物系统的设计与实现 文章目录 基于微信小程序的网上购物系统的设计与实现摘要第一章 绪论1.1 研究…

AWTK 和 QT 资源占用不完全对比

因为没有开发两个完全一样的应用程序&#xff0c;对比的结果并不是很准确&#xff0c;仅供参考。 对比的程序为&#xff1a; AWTK demoui 演示了 AWTK 常用功能。 QT QDesktop 演示了 QT 常用功能。 运行平台为&#xff1a; i.MX6ULL Linux 1. 可以执行文件大小 1.1 AWTK…

Navigation常见场景解决方案

路由跳转场景 页面跳转是路由最常用的能力&#xff0c;Navigation通过NavPathStack提供了诸多方法&#xff0c;下文以pushDestination方法为例&#xff0c;介绍Navigation的路由跳转相关能力。 页面间跳转 NavPathStack提供了路由管理的能力&#xff0c;通过NavPathStack进行…

vue3封装获取当前年、月、季度、周

1.新建在utils文件夹中handleTime.js文件用于封装方法 // 计算当前周的开始和结束时间 export function calcNowWeek() {let startWeek moment().weekday(0).format(YYYY-MM-DD);startWeek moment(startWeek).subtract(2, days).format(YYYY-MM-DD)let endWeek moment().we…

kafka系列一:初识kafka

概述 kafka是由scala语言编写的一个分布式且具备高可用、高性能、可持久化、可水平扩展、支持流数据处理等众多特性的消息系统&#xff0c;常活跃于大数据生态中&#xff0c;而且大名鼎鼎的rocketmq就是参考了kafka的设计原理。 目前越来越多的开源分布式中间件都支持与kafka集…

第十三届蓝桥杯决赛(国赛)真题 Java B 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 重合次数试题 B: 数数试题 C: 左移右移试题 D: 窗口试题 E: 迷宫试题 F : \mathrm{F}: F: 小球称重试题 G: 背包与魔法试题 H: 修路试题 I: 围栏试题J: 好数 发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&…

linux Nginx安装与启动

一、先到官网下载Nginx 官网地址&#xff1a; http://nginx.org/en/download.html 我下载的是nginx-1.20.2 二、下载好的文件上传到服务器&#xff0c;然后解压 1、上传到指定的服务器地址&#xff0c;我这里是公司服务器&#xff0c;目录都是定义好的&#xff0c;自己玩建…