回文字符串判断以及最长回文字符串长度判断

计算字符串中最大回文长度,并返回回文字符串及长度 代码实现输入任意字符串,并计算输入字符串最大回文长度,并返回回文字符串。 立即下载

回文字符串,就是正着反着读都一样的字符串。

1、回文字符串判断

假如这个字符串为奇数长度的回文字符串,则除了最中间的字符外,其左右的字符串两两相同。

假如这个字符串为偶数长度的回文字符串,则其左右完全对称。

代码如下:

#include<iostream>
#include<string>
using namespace std;
bool palindrome(string str)//判断是否为回文字符
{
	int length = str.size();
	if (length <= 0) return false;
	if (length == 1) return true;
	int left = length / 2 - 1;
	int right = length - length / 2;
	while (left >= 0 && right < length)
	{
		if (str[left--] != str[right++])
		{
			return false;
		}
	}
	return true;
}
int main()
{
      string str;
      getline(cin,str);
      cout<<palindrome(str);
      return 0;
}

2、最长回文字符串长度判断

从第一个字符开始,分析以其为中心的奇数长度或者偶数长度的最长回文字符串。

代码如下:

#include<iostream>
#include<string>
using namespace std;
int longestpalindrome(string str)
{
	int length = str.size();
	if (length <= 0) return 0;
	if (length == 1) return 1;
	int i, j;
	int max = 0;
	for ( i = 0; i < length; i++)//以i为中心
	{
		for (j = 0;(i-j>=0)&&(i+j<length);j++)//奇数回文字符串
		{
			if (str[i - j] != str[i + j])
				break;
		}
		if (2 * (j-1) + 1 > max)
			max = 2 * (j - 1) + 1;
		for (j = 0;(i-j>=0)&&(i+j+1<length);j++)//偶数回文字符串
		{
			if (str[i - j] != str[i + j + 1])
				break;
		}
		if (2 * j > max)
			max = 2 * j;
	}
	return max;
}
int main()
{
	string str;
	getline(cin, str);
	cout << longestpalindrome(str);
	return 0;
}

<工控><PLC>汇川Easy521系列PLC与汇川SV630N伺服进行EtherCat通讯的相关配置及指令编写 本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如果有值得记录的内容,也会添加进来。 阅读详情

相关推荐

图像调整亮度饱和度 c语言,【C#/WPF】调节图像的HSL(色相、饱和度、明亮度)...

先说概念:HSL是一种描述颜色的方式(其他颜色描述方式还有大家熟悉的RGB值)。HSL三个字母分别表示图像的Hue色相、Saturation饱和度、Lightness明亮度。需求:制作一个面板,包含三个滑动条,拖动滑动条可以修改目标图片的HSL值。即模仿PS中类似的功能,如下图:方案一:遍历所有像素点,修改每个点的HSL值。前台界面:一个Image控件显示目标图片,一个Button按钮点击一下降低...

weixin_39935777的博客 1155

最长回文子串

题目:给定一个字符串s,找出s中的最长回文子串; 回文是指正着读和倒着读,结果一些样,比如abcba或abba。 方法:暴力法,DP法, 中心扩展法,manacher算法 1、暴力法 求出每一个子串,之后判断是不是回文,找到最长的那个。 求遍历每一个子串的方法的时间复杂度O(n^2),判断每一个子串是不是回文的时间复杂度是O(n),所以总时间复杂度为O(n^3)。 思想:     1...

Hello_GY 的博客 373

逆向分析美团外卖mtgsig3.0签名算法:从抓包到算法还原实战

在移动应用开发与安全领域,API接口签名是保障数据传输完整性与身份验证的核心机制。其基本原理是通过特定的算法,将请求参数、时间戳等数据与密钥结合,生成唯一的签名串,服务器通过验证签名来识别请求的合法性。这项技术的核心价值在于防止数据篡改、重放攻击和未授权访问,是构建安全客户端-服务器通信的基石。在实际应用中,签名算法广泛应用于电商、社交、金融等各类App的接口保护场景。本文以美团外卖App的mtgsig3.0签名为具体案例,详细拆解了其生成逻辑。通过结合Frida动态调试与Jadx静态分析,文章深入探讨了如

weixin_29325515的博客 1248

字符串 - 计算一组字符集合可以组成的回文字符串的最大长度

1.题目 LeetCode:409. 最长回文串 【easy】 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。 注意: 假设字符串的长度不会超过 1010。 示例 1: 输入: “abccccdd” 输出: 7 解释: 我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。 2.解题 方法一:数组 因为回文数组左右的字符是一样的,所以左右的字符必定为偶数个,而中间的字符既

一杯红酒7的博客 1099

医药领域知识图谱快速及医药问答项目(项目全过程)

该项目是中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目 Github项目地址:mirrors / liuhuanyong / qasystemonmedicalkg · GitCode 一、项目环境搭建 该部分要十分注意,由于版本升级的问题,一些用法及格式已经不兼容了。 python3.8 下载地址:Python Release Python 3.8.10 | Python.orght...

qq_52062182的博客 9917

【Android14 ShellTransitions】Transition就绪:双Transaction与SurfaceControl显示时机剖析

本文深入剖析了Android14 ShellTransitions框架中Transition就绪阶段的核心机制。重点解释了为何需要“双Transaction”来精确控制SurfaceControl的显示与隐藏时机,以确保Activity切换动画的流畅性。通过分析onTransactionReady流程、窗口绘制状态机及动画目标提升策略,揭示了系统如何协调WMCore与WMShell,实现从状态收集到动画播放的无缝衔接。

ooo22的博客 529

字符串中最长的回文字符串长度

思想:双重指针遍历,根据回文字符串的特点,回文开始的字符与结尾处字符相同......那么一个指针i从前向后遍历,一个指针j从后向前遍历,如果出现相同的字符,此时计数值加2,i后移一位(保留i的位置,下次外层循环),j前移一位;如果不相等,j指针前移;(注意,此时考虑奇数回文情况,即回文的最中间字符只出现一次,那么需要增加判断,此时计数加1)。记录本次循环的最大回文长度,每次循环跟新该最大值,直到循...

boguesfei的博客 1141

LTO编译器优化介绍以及开启方法

LTO优化的详细介绍

性感的小君君 4924

判断回文串时关于字符串长度的问题

做和字符串有关的题经常遇到判断回文数的情况,需要把字符串对半分,这里就讨论一下需要遍历到哪个下标: 1.若字符串长度为奇数,那其最大下标为偶数,最中间的那个下标是length/2,这时候只需要遍历到length/2-1。 比如字符串为“123”,length=3,length/2=1下标为1的字符为2,判断回文数不需要最中间的那个数,所以只需要遍历到length/2-1即可 2.若字符串长度为偶数...

肥仔的博客 684

分布式锁特点、以及用python3实现redis分布式锁

以下是 Python3 实现 Redis 分布式锁的详细教程,包含代码示例、原理说明及最佳实践。

数据知道的博客 2万+

Proxmox(pve)集群(4)存储(1)配置分布式存储ceph

它使用一种称为CRUSH(Controlled Replication Under Scalable Hashing)算法的数据分布算法来将数据均匀地分布在多个存储节点上,并确保数据的冗余和容错。它负责管理数据的分布、冗余和自动修复。PVE支持本地存储、LVM、NFS、iSCSI、CephFS、RBD、ZFS等存储方式,我这里使用两种存储方式,一种是通过ceph实现分布式存储,一种是通过truenas实现集中式存储。自我管理和自动恢复:Ceph具有自我管理的特性,可以动态地调整和优化存储集群的配置。

Monster✺◟(∗❛ัᴗ❛ั∗)◞✺的博客 2628

如何找到字符串中的最长回文子串?

作者 |channingbreeze责编 | 胡巍巍小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司。可是努...

优快云资讯 1万+

利用baostock获取上市公司财务指标

利用baostock获取上市公司的财务指标 1、导入模块,登录baostock import baostock as bs import pandas as pd import time # 登陆系统 lg = bs.login() # 显示登陆返回信息 print('login respond error_code:'+lg.error_code) print('login respond error_msg:'+lg.error_msg) 2、查询股票代码、行业板块 # 查询股票代码 rs=.

firefox_yau的博客 2099

xdoj指针,最长单词的长度,字符串长度判断 ,字符串部分复制,判断字符串是否是回文

给定一个英文句子,统计这个句子中最长单词的长度,并在屏幕上输出。输入说明从键盘输入一个英文句子,句子中只含有英文字符和空格,句子以’.’结束。句子总长不超过100个字符。输出说明输出一个整数,表示这个句子中最长单词的长度。允许句子中有相同长度的单词。输入样例1输入样例2输出样例输出样例17输出样例24int main()for(i=0;i<n;i++)c++;elsec=0;

2301_80300205的博客 1371

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

判断一个字符串里最长回文的长度

public static int gatMaxlenOfHuiwen(String s){ if(s==null || s.length()<=0){ return 0; } int maxLen = 1; char[] generatedChars = getInsertedArray(s);...

fyifei0558的专栏 423

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

判断是否回文字符串 And 最长回文字符串 子串长度

判断是否回文字符串方法一:传统两个指针 begin---end;  str.charAt(begin)==str.charAt(end) 不能用str[begin]==str[end];没有这种用法; String str import java.util.Scanner; public class Main{ public static void main(String[] args...

qq_33608638的博客 239

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

最长回文子串问题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

题目描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 题目分析 其实,这道题的解法有多种,包括暴力解法、动态规划、中心扩展法等,在这里,只讲述中心扩展法,剩下的几种办法,大家可以自行百度。中心扩展法的基...

qq_29462849的博客 3127

五、最长回文子串

题目描述: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例2: 输入: "cbbd" 输出: "bb" 思路 如果字符串长度小于 2,直接返回字符串 定义两个变量,一个 start 存储当前找到的最大回文字符串的起始位置,另一个 maxLangth 记录字符串的长度 判断左边和右边是否越界,同时最左边的字符等于最右边的字符,如果上述的条件都满足,则判断是否需要更

小刺猬 243

【字符串-2】leetcode-5:最长回文子串(Longest Palindromic Substring)

题目链接和参考链接 题目描述: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb” 思想: 循环遍历字符串,以每一个子串为中心,向两侧扩散寻找回文串,也就是判断两侧字符是否相等; 首先判断剩余的字符数是否小于...

heimu24的博客 258

算法:最长回文长度

问题描述 给定一个字符串,求它的最长回文子串的长度(连续长度或者不连续长度)。 回文串就是正着读和反着读都一样的字符串。 问题一:判断是否是回文 分析:根据定义进行判断,首尾不一致,则就不是回文 bool isPalinDrome(string& str, int begin, int end){ // 判断是否是回文 int bg = begin, ed...

hairuiJY 2892

【区间DP】【hard】力扣1771. 由子序列构造的最长回文串的长度

我们要求子序列构造的最长回文串长度,实际上就是将word1和word2合成一个字符串,然后求最长回文串长度,由于题目要求word1和word2都要有字符构成回文串。当s[i] = s[j]的时候,dp[i][j]一定包含s[i]和s[j],那么我们就可以判断i如果在word1范围内,j在word2范围内,就说明该dp[i][j]记录的最长回文串长度一定有word1和word2贡献的字符。解释:从 word1 中选出 “ab” ,从 word2 中选出 “cba” ,得到回文串 “abcba”。

sjsjs11的博客 406

Longest Palindromic Substring 最长回文字符串

记录 算法:对字符串中的每一个字符开始,进行回文串的判断,例如: abacd 从a自身开始(每一个字母就是一个回文字符串),向两边顺序延伸判断,出界为止,记录字符串的起始位置和当前回文串的长度。然后进行下一个字符的判断,更新最长的回文字符串长度和这个当前最长回文字符串的起始位置。逐一判断,返回。 代码实现时,需要注意,因为回文串包括偶数个字符和奇数个字符的,所以在进行回文串的寻找时,应进行

sss2951的博客 174

LeetCode 516.最长回文子序列 C++

LeetCode 516.最长回文子序列 给定一个字符串 s ,找到其中最长的回文子序列,并返回该序列的长度。可以假设 s 的最大长度为 1000 。 示例 1: 输入: “bbbab” 输出: 4 一个可能的最长回文子序列为 “bbbb”。 示例 2: 输入: “cbbd” 输出: 2 一个可能的最长回文子序列为 “bb”。 提示: 1 <= s.length <= 1000 s 只包含小写英文字母 来源:力扣(LeetCode) 链接:https://leetcode-

wzy1414的博客 728

给定一个字符串s,找出s中最长的回文子串,你可以假设s的最大长度是1000。

给定一个字符串s,找出s中最长的回文子串,你可以假设s的最大长度是1000。 找出一个字符串中最大的回文字符串思路:从第一个字符串开始,一次向左向右判断,如果相同就继续向左向右直到不相同或者越界为止,并判断最大长度,依次更新最大长度值,并记录最大长度值的开始为止。示例代码如下:[java] view pl...

binbigdata的博客 2593

leetcode-求字符串中的最大回文字符

https://leetcode.com/problems/longest-palindromic-substring 此题有较多的解法,在此用了动态规划的做法: https://www.cnblogs.com/grandyang/p/4464476.html dp[j][i] : 表示 下标为 从 j -> i 的字符串是否为回文字符串。 可以做如下判断: 初始 当 j==i 时,dp...

勤学如春起之苗,不见其增,日有所长 187

LeetCode5537. 分割两个字符串得到回文串

给你两个字符串 a 和 b ,它们长度相同。请你选择一个下标,将两个字符串都在 相同的下标 分割开。由 a 可以得到两个字符串: aprefix 和 asuffix ,满足 a = aprefix + asuffix ,同理,由 b 可以得到两个字符串 bprefix 和 bsuffix ,满足 b = bprefix + bsuffix 。请你判断 aprefix + bsuffix 或者 bprefix + asuffix 能否构成回文串。 当你将一个字符串 s 分割成 sprefix 和 ssuffi

MasssA 494
上一篇: 背包问题动态规划
下一篇: 7大常用排序算法总结
vanvanvane
博客等级 码龄7年 1粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值