LeetCode 1147. 段式回文(贪心)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

段式回文 其实与 一般回文 类似,只不过是最小的单位是 一段字符 而不是 单个字母。

举个例子,对于一般回文 "abcba" 是回文,而 "volvo" 不是,但如果我们把 "volvo" 分为 "vo"、"l"、"vo" 三段,则可以认为 “(vo)(l)(vo)” 是段式回文(分为 3 段)。

给你一个字符串 text,在确保它满足段式回文的前提下,请你返回 最大数量 k

如果段的最大数量为 k,那么存在满足以下条件的 a_1, a_2, …, a_k:

  • 每个 a_i 都是一个非空字符串;
  • 将这些字符串首位相连的结果 a_1 + a_2 + … + a_k 和原始字符串 text 相同;
  • 对于所有1 <= i <= k,都有 a_i = a_{k+1 - i}。
示例 1:
输入:text = "ghiabcdefhelloadamhelloabcdefghi"
输出:7
解释:我们可以把字符串拆分成 "(ghi)(abcdef)(hello)(adam)(hello)(abcdef)(ghi)"。示例 2:
输入:text = "merchant"
输出:1
解释:我们可以把字符串拆分成 "(merchant)"。示例 3:
输入:text = "antaprezatepzapreanta"
输出:11
解释:我们可以把字符串拆分成 "(a)(nt)(a)(pre)(za)(tpe)(za)(pre)(a)(nt)(a)"。示例 4:
输入:text = "aaa"
输出:3
解释:我们可以把字符串拆分成 "(a)(a)(a)"。提示:
text 仅由小写英文字符组成。
1 <= text.length <= 1000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-chunked-palindrome-decomposition
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 贪心的做法,遇到相等的前后子串就取出来,循环检查剩余串,证明见题解区
class Solution {
public:int longestDecomposition(string text) {int i = 0, j = text.size()-1, ans = 0;while(i <= j){int maxlen = j-i+1;//剩余子串 [i,j]for(int len = 1; len <= maxlen; len++){if(text.substr(i,len) == text.substr(j-len+1, len)){	// 首尾子串 相等if(len < maxlen)ans += 2;elseans += 1;i += len;j -= len;break;}}}return ans;}
};

0 ms 11.3 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

利用python批量修改文件名称

一、基础知识&#xff1a; 通过查阅资料os模块中rename和renames都可以做到 他们的区别为.rename:只能修改文件名 renames:可以修改文件名,还可以修改文件上级目录名称 另一个用到的方法是os.listdir(path) path为路径 此方法可以将指定路径文件夹中的文件名录入一个列表…

多个域名向主域名自动跳转的Nginx配置

if ($host "bbs.umiwi.com"){ rewrite ^/(.*)$ http://bbs.youmi.cn/$1 permanent; } 多个域名向主域名自动跳转的Nginx配置&#xff0c;可用于URL搜索引擎优化等。nginx语法检测特别严格&#xff0c;if和后面括号以及变量等号这些元素都要有空格&#xff0c;否则会…

LeetCode 464. 我能赢吗(状态压缩+记忆化递归 / 博弈)

文章目录1. 题目2. 解题1. 题目 在 “100 game” 这个游戏中&#xff0c;两名玩家轮流选择从 1 到 10 的任意整数&#xff0c;累计整数和&#xff0c;先使得累计整数和达到或超过 100 的玩家&#xff0c;即为胜者。 如果我们将游戏规则改为 “玩家不能重复使用整数” 呢&…

简单聊一聊Python工程师任职要求及未来发展方向

一、不同阶段Python工程师任职要求及标准 1、新手入门 任职要求&#xff1a; 熟练掌握python编程语言&#xff0c;熟悉flask或django开发框架者&#xff1b; 一名Python开发工程师的职业规划 熟练使用Windows系统&#xff0c;能使用Word&#xff0c;Excel&#xff0c;Powe…

总结python换源的方法:Linux与windows系统

一、命令行方式&#xff1a; 1、清华源地址&#xff1a; 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如&#xff1a;pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gevent&#xff0c;这样就会从清华这边的镜像去安装gevent库。 …

LeetCode 880. 索引处的解码字符串(找规律)

文章目录1. 题目2. 解题1. 题目 给定一个编码字符串 S。请你找出 解码字符串 并将其写入磁带。 解码时&#xff0c;从编码字符串中 每次读取一个字符 &#xff0c;并采取以下步骤&#xff1a; 如果所读的字符是字母&#xff0c;则将该字母写在磁带上。如果所读的字符是数字&a…

C、C++ 学习经历

1、可以考虑先学习C。 大多数时候&#xff0c;我们学习语言的目的&#xff0c;不是为了成为一个语言专家&#xff0c;而是希望成为一个解决问题的专家。做一个有用的程序员&#xff0c;做一个赚钱的程序员。我们的价值&#xff0c;将体现在客户价值上&#xff0c;而不是语言写得…

python中遇到循环import即circular import的问题原理剖析及解决方案

在python中常常会遇到循环import即circular import的问题&#xff0c;今天主要给大家介绍了关于Python中循环引用&#xff08;import&#xff09;失败的解决方法&#xff0c;文中通过示例代码介绍的非常详细&#xff0c;需要的朋友可以参考借鉴。 一、前言 最近在开发智能家居…

LeetCode 1711. 大餐计数(map计数 + 二分查找)

文章目录1. 题目2. 解题1. 题目 大餐 是指 恰好包含两道不同餐品 的一餐&#xff0c;其美味程度之和等于 2 的幂。 你可以搭配 任意 两道餐品做一顿大餐。 给你一个整数数组 deliciousness &#xff0c;其中 deliciousness[i] 是第 i​​​​​​​​​​​​​​ 道餐品的美…

node.js初入手

今天突然看到《node.js开发指南》的pdf文件&#xff0c;感觉封面不错&#xff0c;就看看。发现写的挺好的。 一、mac下安装 http://nodejs.org/download/ //官网下载mac版 二、用npm安装supervisor (检测修改&#xff0c;则重启node进程) sudo npm install -g supervisor //…

总结与整理:Ubuntu系统下安装、配置Nginx及其他注意事项

在Ubuntu下安装Nginx有以下方法&#xff0c;但是如果想要安装最新版本的就必须下载源码包编译安装。 一、基于APT源安装 sudo apt-get install nginx 1、安装好的文件位置&#xff1a; /usr/sbin/nginx&#xff1a;主程序 /etc/nginx&#xff1a;存放配置文件 /usr/share/n…

LeetCode 1710. 卡车上的最大单元数(排序,模拟)

文章目录1. 题目2. 解题1. 题目 请你将一些箱子装在 一辆卡车 上。给你一个二维数组 boxTypes &#xff0c;其中 boxTypes[i] [numberOfBoxesi, numberOfUnitsPerBoxi] &#xff1a; numberOfBoxesi 是类型 i 的箱子的数量。numberOfUnitsPerBoxi 是类型 i 每个箱子可以装载…

hdu 1505 City Game

http://acm.hdu.edu.cn/showproblem.php?pid1505 先处理每一行上每一个F为底往上所到达的高度&#xff0c;然后再左右处理。 1 #include <cstdio>2 #include <cstring>3 #include <algorithm>4 #define maxn 10015 using namespace std;6 7 int t;8 int n,m…

使用Python requests post上传图片及示例demo

一、需求&#xff1a; 利用python写demo&#xff0c;上传图片&#xff0c;调用接口&#xff0c;并返回数据 二、requests上传图片参数&#xff1a; resrequests.request("POST",url, dataNone, filesfiles) 三、demo示例&#xff1a; import json import osimpo…

LeetCode 1712. 将数组分成三个子数组的方案数(前缀和 + 二分查找)

文章目录1. 题目2. 解题221 / 3117&#xff0c;前7.1%574 / 9692&#xff0c;前 5.9%周赛前2题如下&#xff1a; LeetCode 5641. 卡车上的最大单元数&#xff08;排序&#xff0c;模拟&#xff09; LeetCode 5642. 大餐计数&#xff08;map计数 二分查找&#xff09; 第4题&am…

总结python处理图片等比例压缩与质量处理的方法

一、使用PIL image 处理 1、在使用PIL image处理图像要获取高质量的关键地方是下面两点&#xff1a; 1、处理时要用 ANTIALIAS&#xff1b;2、保存时是要设置 quality&#xff1b; 2、在python ide 可以这样处理&#xff1a; im.resize(box, Image.ANTIALIAS) im.save(path…

第六周交流会内容

第六周 交流会 -bO莱特 一、接口作为参数&#xff0c;不同的接口调用不同的方法&#xff0c;例如&#xff1a;输出“I love Game”或输出“我喜欢游戏” 接口的思想&#xff1a;在于可以增加很多类都需要实现的功能。比如&#xff1a;各式各样的商品&#xff0c;可能隶属不同公…

Python基础代码练习(30个示例)

1、冒泡排序 2、计算x的n次方的方法 3、计算a*a b*b c*c …… 4、计算阶乘 n! 5、列出当前目录下的所有文件和目录名 6、把一个list中所有的字符串变成小写&#xff1a; 7、输出某个路径下的所有文件和文件夹的路径 8、输出某个路径及其子目录下的所有文件路径 9、输出某个路…

LeetCode 1713. 得到子序列的最少操作次数(最长上升子序DP nlogn)

文章目录1. 题目2. 解题1. 题目 给你一个数组 target &#xff0c;包含若干 互不相同 的整数&#xff0c;以及另一个整数数组 arr &#xff0c;arr 可能 包含重复元素。 每一次操作中&#xff0c;你可以在 arr 的任意位置插入任一整数。 比方说&#xff0c;如果 arr [1,4,1,…

ubuntu 16.04系统中nvidai、cuda、cudnn安装及注意事项

一、NVIDAI driver显卡驱动安装 首先看一下笔记本显卡型号 lspci |grep VGA 在命令行敲过这个命令后&#xff0c;有些台式机或笔记本会显示nvidia显卡&#xff0c;如下所示&#xff1a; 但是我的笔记本电脑 只显示nouveau卡&#xff08;集成显卡&#xff09; 需要执行下面命…