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

回文字符串判断以及最长回文字符串长度判断「建议收藏」回文字符串,就是正着反着读都一样的字符串。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;
}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IntelliJ idea 必备 好用 优秀 插件

    IntelliJ idea 必备 好用 优秀 插件1、AtomMaterialICons这是一个icon图片插件,有一个特别牛的功能就是可以优化idea流畅度,不知道是什么原理,现在这个插件成为了我必备插件2、FileExpander有了这个插件,有些小伙伴平时用的Jad工具就可以扔了,它能在Idea里直接打开Jar包3、GitToolBox这款插件现在我几乎离不开它。他能在项目上提示你还有多少文件没提交,远程还有多少文件没更新下来。还能在每一行代码上提示上次提交的时间。查版本提交问题的时候尤其方便4、MavenHelper

    2022年10月9日
    2
  • redis在c#中的应用_redis写入数据的同时是否可以读

    redis在c#中的应用_redis写入数据的同时是否可以读一RedisClient存入缓存:(1)redis.exe执行代码和结果127.0.0.1:6379>setToken”4b366348-da6a-4716-84f6-e3af656943ff”OK(2)c#执行RedisClientclient=newRedisClient(“127.0.0.1”,6379);UserInfouserInfo=newUserInfo();userInfo.id=1;

    2022年10月11日
    1
  • bcd码与十进制转换方法_5421bcd码转换十进制

    bcd码与十进制转换方法_5421bcd码转换十进制BCD码其实就是之前在数字电路中说的用4位二进制数值来表示一个0-9中的数字,例如:0000=00001=10010=20011=3也就是说如果把一个数字作为一个BCD码,例如:112

    2022年8月6日
    5
  • dw网页制作入学教程_网站制作之dreamweaver入门

    dw网页制作入学教程_网站制作之dreamweaver入门1dreamweaver入门(2004版本):功能简介:MacromediaDreamweaverMX2004(简称DWMX2004),是Macromedia最新开发的的HTML编辑器,用于对Web站点、Web页和Web应用程序进行设计、编码和开发。DWMX2004包含有一个崭新、简洁、高效的界面,且性能也得到了改进。此外,还包含了众多新增的功能,改善了软件的易用性并使您无…

    2022年5月15日
    37
  • 对不起,学会这些 Linux 知识后,我有点飘

    对不起,学会这些 Linux 知识后,我有点飘Linux简介UNIX是一个交互式系统,用于同时处理多进程和多用户同时在线。为什么要说UNIX,那是因为Linux是由UNIX发展而来的,UNIX是由程序员设计,它的主要服务对象也是程序员。Linux继承了UNIX的设计目标。从智能手机到汽车,超级计算机和家用电器,从家用台式机到企业服务器,Linux操作系统无处不在。大多数程序员都喜欢让系统尽量简单,优雅并具有一致性。举个例子,从最底层的角度来讲,一个文件应该只是一个字节集合。为了实现顺序存取、随机存取、按键存取、远程存取只能是

    2022年5月31日
    23
  • 免备案cdn的有没有,免备案cdn是适用于什么行业呢[通俗易懂]

    免备案cdn的有没有,免备案cdn是适用于什么行业呢[通俗易懂]蔚可云CDN可以进行网站加速,当然不仅仅是网站,APP也是可以进行加速,提高访问速度提升用户体验,CDN对于互联网公司是离不开的,在一定程度上可有效促进用户的转化,当然CDN还可以用于防御DDOS与CC攻击。那么问题来了,如果是没有备案的网站能不能进行CDN加速呢?大家都知道,随着互联网的发展,必须对其进行规范化,根据工信部的要求,如果你的域名没进行备案,还没取得ICP备案号,那你的网站在国内可能会被禁止用户无法打开的。当然也有例外,蔚可云就可提供免备案的CDN加速产品,支持3…

    2022年9月10日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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