
字符串处理——回文串相关
Alex_McAvoy
想要成为渔夫的猎手
展开
-
Applese 的回文串
【题目描述】自从 Applese 学会了字符串之后,精通各种字符串算法,比如……判断一个字符串是不是回文串。这样的题目未免让它觉得太无聊,于是它想到了一个新的问题。如何判断一个字符串在任意位置(包括最前面和最后面)插入一个字符后能不能构成一个回文串?【输入描述】仅一行,为一个由字母和数字组成的字符串 s。|s|≤10^5【输出描述】如果在插入一个字符之后可以构成回...原创 2019-02-03 12:19:06 · 270 阅读 · 0 评论 -
小b和回文数(51Nod-2483)
题目小b觉得回文数很美。对于一个正整数x,如果从左到右读和从右到左读是一样的,则称x为回文数。例如"123",从右到左读是"321",所以它不是回文数;而"121"则是回文数。现在给定整数n,求距离n最近的回文数。即找到一个回文数x,使得|x-n|最小。如果有多个满足条件的x,输出最小的那个。输入一个数表示n,其中0<n<10^18输出一个数表示答案输入样例...原创 2019-04-26 11:08:11 · 495 阅读 · 2 评论 -
Palindrome(POJ-3974)
Problem DescriptionAndy the smart computer science student was attending an algorithms class when the professor asked the students a simple question, "Can you propose an efficient algorithm to find...原创 2019-02-27 10:59:55 · 358 阅读 · 0 评论 -
字符串处理 —— 回文串相关 —— Manacher 算法
【概述】Manacher 算法又称马拉车算法,用于求最长回文子串。对于最长回文子串传统的求法的求法是以每个字符为中心,向两边寻找回文子串,在遍历完整个数组后即可得到最长回文子串,其时间复杂度为 O(n^2)而马拉车算法,将求最长回文子串的时间复杂度提升到了线性,其时间复杂度只有 O(n)【算法流程】1.预处理由于字符串的长度分为奇偶两种,因此对于初始的字符串,在每一个字符的...转载 2019-02-25 18:08:15 · 600 阅读 · 0 评论 -
吉哥系列故事――完美队形II(HDU-4513)
Problem Description吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则就是新的完美队形: 1、挑出的人保持原队形的相对顺序不变,且必须都是在原队形中连续的; 2、左右对称,假设有m个人形成新的队形,则第...原创 2019-03-02 13:27:34 · 521 阅读 · 0 评论 -
炫酷回文
【题目描述】小希拿到了一个很长的两行的字符矩阵,她想知道里面有多少个子矩阵的字符取出后通过某种排列可以构成一个回文串。该字符矩阵内仅含有数字0-9。【输入描述】第一行输入一个整数N,表示字符矩阵的长度为N。随后两行,每行N个字符,表示字符矩阵。1≤N≤1000000【输出描述】输出一个整数,表示有多少个子矩阵的字符取出后通过某种排列可以构成一个回文串。【样例】...原创 2019-03-12 15:06:41 · 352 阅读 · 0 评论 -
字符串处理 —— 回文串相关 —— 回文串的判断
【逐个比较】bool isPalindrome(string str){ for(int i=0;i<str.size()/2;i++) if(str[i]!=str[str.size()-1-i]) return false; return true;}【反转比较】bool isPalindrome(string s...原创 2019-02-03 13:35:16 · 454 阅读 · 0 评论 -
字符串处理 —— 回文串相关 —— 添加/删除字符后是否为回文串
【问题】给定一个字符串,问对该字符串,是否能通过添加一个字符后变为回文串。若可以,输出 YES,否则输出 NO对于该问题,首先要明白,删除一个字符与添加一个字符在判断回文串中是等价的。【暴力枚举】先判断字符串是否回文,若是回文,可以在中间添加/删除一个字符(对于奇数串,添加/删除中间的那个字符;对于偶数串,可在中间添加任意一个字符,可删除中间两个任意一个字符),直接返回 YES...原创 2019-02-03 13:08:45 · 1962 阅读 · 0 评论 -
字符串处理 —— 回文串相关 —— 求最长回文子串
【暴力枚举】求最长回文串最容易的方法就是暴力枚举,求出字符串的每一个子串,然后判断是不是回文,找到最长的那个回文串求每一个子串的时间复杂度为 O(N^2),判断一个子串是不是回文时间复杂度为 O(N),总的时间复杂度为 O(N^3)string str;void longestPalindrome(){ int len=str.size();//字符串长度 int ...原创 2019-02-03 13:00:03 · 457 阅读 · 0 评论 -
字符串处理 —— 回文串相关
【回文串】回文串,就是一个正读与反读都一样的字符串,比如:abcdcba、zxccxz 等常见的回文串算法有:求字符串中最长回文串、判断一个字符串是否为回文串、在字符中添加/删除一个字符后是否为回文串等回文串的判断:点击这里 添加/删除字符后是否为回文串:点击这里 求最长回文子串:点击这里 Manacher 算法(O(n) 求最长回文子串):点击这里【例题】Palindr...原创 2019-02-03 13:08:55 · 603 阅读 · 0 评论 -
Palindromic Twist(CF-1027A)
Problem DescriptionYou are given a string ss consisting of nn lowercase Latin letters. nn is even.For each position i(1≤i≤n) in string s you are required to change the letter on this position ei...原创 2018-08-24 09:51:09 · 333 阅读 · 0 评论 -
Strings in the Pocket(ZOJ-4110)
Problem DescriptionBaoBao has just found two strings s=s1s2...sn and t=t1t2...tn in his left pocket, where si indicates the i-th character in string s, and ti indicates the i-th character in string...原创 2019-04-28 16:31:30 · 491 阅读 · 1 评论