回文字符串判断以及最长回文字符串长度判断「建议收藏」

回文字符串判断以及最长回文字符串长度判断「建议收藏」回文字符串,就是正着反着读都一样的字符串。1、回文字符串判断假如这个字符串为奇数长度的回文字符串,则除了最中间的字符外,其左右的字符串两两相同。假如这个字符串为偶数长度的回文字符串,则其左右完全对称。代码如下:#include<iostream>#include<string>usingnamespacestd;boolpalindrome(strin…

大家好,又见面了,我是你们的朋友全栈君。

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

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;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/135131.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • U盘市场调查分析

    U盘市场调查分析U盘市场分析2005年前后,是U盘行业最辉煌的年代,然而随着互联网的普及应用,各种网盘以及智能手机传输越来越方便,给U盘施加了一定的压力。除此之外,近几年移动硬盘迅速兴起,更是抢占了大量市场份额,让U盘厂商的日子越来越艰难。但凭借体积小、携带方便、即插即用、稳定等特点,U盘在移动存储领域依然占据着一定优势。面对着各类对手的“围攻”,U盘厂商们一方面升级主流产品,留住客户群,另一方面则纷纷开发细分市场,通过挖掘用户不同领域的需求,以实现新的业务增长。需求下降,U盘行业萎缩 2017年有业内人士发出.

  • github邮箱验证不了_为什么github注册不成功

    github邮箱验证不了_为什么github注册不成功要使用github必须先注册个github账号,注册之后会有一个邮箱验证的步骤需要做但是如果你使用126,163或者其它的一些免费邮箱,极有可能是收不到邮箱的,这个就麻烦了不过,qq邮箱目前是可以使用的,         不过也可能出现收不到的情况,那就换个qq邮箱再试,         如果还不行,换个时间段再试;   

  • PyCharm的安装和配置(社区版)「建议收藏」

    PyCharm的安装和配置(社区版)「建议收藏」Python学习基础笔记一、PyCharm的安装和配置二、Python基础语法2.1、概率2.2、标识符一、PyCharm的安装和配置二、Python基础语法2.1、概率2.2、标识符

  • svn基本命令使用

    svn基本命令使用

    2021年10月29日
  • 什么是回调地狱?如何解决回调地狱问题_地狱回调

    什么是回调地狱?如何解决回调地狱问题_地狱回调什么是回调地狱?该如何解决回调地狱?

  • “8+1”,解决企业绩效管理老大难!

    “8+1”,解决企业绩效管理老大难!

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号