算法笔记(c++)--回文
算法笔记(c++)--回文
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std; int main()
{
std::string s;
char h[];
int max=,start,last;
int temp[],m=;
getline(cin,s);
//这里的temp保存了原字符值在原字符串的位置,可以借鉴下
for(int i=;i<s.length();i++)
if(isalpha(s[i]))
{
temp[m]=i;
h[m++]=tolower(s[i]);
}
for(int i=;i<m;i++)
{
//奇数
for(int j=;i-j>&&i+j<m;j++)
{
if(h[i-j]!=h[i+j])
break;
if(j*+>max)
{
max=j*+;
start=temp[i-j];
last=temp[i+j];
}
}
//偶数
for(int j=;i-j>&&i+j+<m;j++)
{
if(h[i-j]!=h[j+i+])
break;
if(max<j*+)
{
max=j*+;
start=temp[i-j];
last=temp[i+j+];
}
}
}
for(int i=start;i<=last;i++)
cout<<s[i];
cout<<max;
return ;
}
算法笔记(c++)--回文的更多相关文章
- 算法笔记_030:回文判断(Java)
目录 1 问题描述 2 解决方案 1 问题描述 给定一个字符串,如何判断这个字符串是否是回文串? 所谓回文串,是指正读和反读都一样的字符串,如madam.我爱我等. 2 解决方案 解决上述问题,有 ...
- Manacher 算法-----o(n)回文串算法
回文的含义是:正着看和倒着看相同,如abba和yyxyy Manacher算法基本要点:用一个非常巧妙的方式,将所有可能的奇数/偶数长度的回文子串都转换成了奇数长度:在每个字符的两边都插 ...
- Manacher算法----最长回文子串
题目描述 给定一个字符串,求它的最长回文子串的长度. 分析与解法 最容易想到的办法是枚举所有的子串,分别判断其是否为回文.这个思路初看起来是正确的,但却做了很多无用功,如果一个长的子串包含另一个短一些 ...
- Manacher算法——最长回文子串
一.相关介绍 最长回文子串 s="abcd", 最长回文长度为 1,即a或b或c或d s="ababa", 最长回文长度为 5,即ababa s="a ...
- manacher算法,求回文串
用来求字符串最长回文串或者回文串的总数量 #include<map> #include<queue> #include<stack> #include<cma ...
- ALGO-14_蓝桥杯_算法训练_回文数
问题描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...
- Manacher算法,最长回文串
给你10000长度字符串,然你求最长回文字串,输出长度,暴力算法肯定超时 #include <iostream> #include <string> #include < ...
- LeetCode 5 Longest Palindromic Substring manacher算法,最长回文子序列,string.substr(start,len) 难度:2
https://leetcode.com/problems/longest-palindromic-substring/ manacher算法相关:http://blog.csdn.net/ywhor ...
- 计算字符串的最长回文子串 :Manacher算法介绍
转自: http://www.open-open.com/lib/view/open1419150233417.html Manacher算法 在介绍算法之前,首先介绍一下什么是回文串,所谓回文串,简 ...
- 最长回文子串问题-Manacher算法
转:http://blog.csdn.net/dyx404514/article/details/42061017 Manacher算法 算法总结第三弹 manacher算法,前面讲了两个字符串相算法 ...
随机推荐
- GoBelieve service部署常见问题总结
问题1: 大家好,我按照文档的步骤编译im时(make install),出现 can't load package: package main: app_route.go:1:1: expected ...
- 编译安装 Hue
# 安装前的准备 useradd huedev wget https://github.com/cloudera/hue/archive/release-4.2.0.tar.gz -O /home/h ...
- 转:Sql Server中清空所有数据表中的记录
如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍. 使用sql删除数据库中所有表是不难的 ...
- Mybatis 配置文件
1.核心配置文件 sqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOC ...
- Elasticsearch 6.3.1、Head插件 安装及配置
安装Elasticsearch Elasticsearch下载地址:https://www.elastic.co/cn/downloads/elasticsearch 也可以直接使用wget下载到某目 ...
- PHP 变量分页标签页面源代码技术分享
最近在研究PHP的常规变量的分页源代码. 现在发布一个给大家看一下. defined('IN_DUOAO') or exit('No permission resources.');$smarty ...
- Delphi Compiler Bug?
I found a Bug of Delphi XE3 Compiler,It may exists in XE4,XE5. Here is the code to show the bug proc ...
- MIPI调试经验(转载)
目录 一.D-PHY 1.传输模式 2.Lane States 3.Lane Levels 4.操作模式 5.时序要求 二.DSI 1.线路构成 2.两种接口的 LCD 3.数据包类型 4.从控制器到 ...
- Home Assistant系列 -- 基于树莓派安装并设置自启动
Home Assistant 是当前智能家居最火热的开源DIY 软件,之前的文章 智能家居系统 Home Assistant 系列 --介绍篇 已经详细介绍过了,这里就不详细介绍了,今天介绍 如何 ...
- Google protobuf使用技巧和经验
Google protobuf是非常出色的开源工具,在项目中可以用它来作为服务间数据交互的接口,例如rpc服务.数据文件传输等.protobuf为proto文件中定义的对象提供了标准的序列化和反序列化 ...