【发布时间】:2018-06-09 14:41:09
【问题描述】:
假设我有一个回文s,我将继续在s 的末尾附加字符以获得乐趣。但我想停止一次 s 不再是回文。
现在我很懒所以我不想在每次将新字符附加到s 时重新扫描s 以确定它是否是回文。我想知道是否有一种更快的方法来公式化/检查新的s 是否是回文,利用s 已经是回文的事实。我觉得有一种方法可以利用这些信息,但我无法完全理解它。
我被困在我的思考过程中。到目前为止,我正试图将事情分解成案例。
回文 s 可以有两种形式:(|__M__| 是 s 的子字符串部分,|__-M__| 是 |__M__| 的倒数)
当长度为奇数时:
|__-M__|X|__M__|
当长度为偶数时:
|__-M__||__M__|
现在当我添加新字符 c 时,有没有一种有效的检查方法
|__-M__|X|__M__|c
|__-M__||__M__|c
【问题讨论】:
-
你能举一些满足这个标准的回文(偶数长度、奇数长度或两者兼有)的例子吗?在我的脑海中,我只能想到一个字符的回文,并附加相同的字符,例如aaa --> aaaa
-
@Keeler 现在你问我想我在想这个问题.....我认为回文唯一一次仍然是回文是如果所有字符都相同并且我们添加相同人物。 (加上空字符串大小写).....对吗?伙计,现在我觉得自己很愚蠢......为什么我会因为这样一个简单的问题而失眠......叹息
标签: algorithm palindrome