214Shortest Palindrome
2015-12-17 19:16
351 查看
首先需要知道KMP,其次假设原串是s
造一个新串 s#s' 其中s'是s的完全反过来
然后我们只需要知道新串开头最长的回文串是什么,问题就迎刃而解了。
而想要知道这个,就利用KMP中的next数组即可,且只看最后一位。
比如最后一位next值为i (我们假定这个值表示0~i和 n-i~n)之间是相同的
假设n-i ~n 为 a0a1...ai
根据构造知 0~i为 aiai-1...a1a0
从而 a0a1...ai= aiai-1...a1a0 也就是说 next值+1=回文串的长度!!从而简单了
造一个新串 s#s' 其中s'是s的完全反过来
然后我们只需要知道新串开头最长的回文串是什么,问题就迎刃而解了。
而想要知道这个,就利用KMP中的next数组即可,且只看最后一位。
比如最后一位next值为i (我们假定这个值表示0~i和 n-i~n)之间是相同的
假设n-i ~n 为 a0a1...ai
根据构造知 0~i为 aiai-1...a1a0
从而 a0a1...ai= aiai-1...a1a0 也就是说 next值+1=回文串的长度!!从而简单了
相关文章推荐
- UITableView高度自适应
- android propertyAnimator--()
- BZOJ 1001 (UVa1376, LA3661 ) - 平面图最大流(对偶图 -> 最短路)
- mysql5.6版本安装步骤详解
- zhu的工作日记:handler消息处理机制浅解(android)
- copy
- struts2-OGNL和类型转换(structs 自动数据表单获取)
- Codeforces Beta Round #1 A. Theatre Square
- 第7周项目项目6 - 停车场模拟.cpp
- vs auto build
- linux =>Ubuntu 14.04 安装 Sublime Text 3
- Leetcode200: Super Ugly Number
- 【cl】本地安装maven的jar包报错Artifact is already in the local repository
- JSTREE 实现AJAX重载入时刷新所有节点树
- PAT-个位数统计
- Android中的asset文件夹和raw文件夹区别
- Objective--C Slider实现三原色之间颜色变化
- VirtualBox的网络配置,Host Only+NAT方式
- 【积淀】封装一个简单的倒计时组件
- Xcode6 模拟器路径