美文网首页
214. 最短回文串【字符串:回文串】【暴力法】

214. 最短回文串【字符串:回文串】【暴力法】

作者: 月下蓑衣江湖夜雨 | 来源:发表于2020-09-02 15:15 被阅读0次

题目

题目

【暴力法】解题思路

// abcd
// 反转 dcba
// 合并 dcba abcd
// 要删除公共部分a
//
// 推广:
// 字符串aA,a是回文前缀,则题解是A'aA,其中A'是A的反转;
//
// 方法1: 暴力法
// 1)遍历求aA的最长回文前缀a,进而获得剩余部分A;
// 2)答案是A'aA
//

【暴力法】代码

package main

// 给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。
// 输入: "abcd"
// 输出: "dcbabcd"
//
//      abcd
// 反转 dcba
// 合并 dcba abcd
// 要删除公共部分a
//
// 推广:
// 字符串aA,a是回文前缀,则题解是A'aA,其中A'是A的反转;
//
// 方法1: 暴力法
// 1)遍历求aA的最长回文前缀a,进而获得剩余部分A;
// 2)答案是A'aA
//

// 判断是否为回文字符串
func isPalindromeStr(str string) bool {
    for i,j := 0, len(str)-1; i<j; i, j = i+1, j-1 {
        if str[i] != str[j] {
            return false
        }
    }

    return true
}

// 反转字符串
func reverseStr(str string) string {
    runeStr := []rune(str)
    for from, to := 0, len(runeStr)-1; from < to; from, to = from + 1, to -1 {
        runeStr[from], runeStr[to] = runeStr[to], runeStr[from]
    }

    return string(runeStr)
}

func shortestPalindrome(str string) string {
    var ans string
    
    for i:=len(str); i>=0; i-- {
        prefix := str[:i]
        if isPalindromeStr(prefix) {
            ans = reverseStr(str[i:]) + str
            break
        }
    }

    return ans
}

【暴力法】执行结果

暴力法解题结果

相关文章

  • 214. 最短回文串【字符串:回文串】【暴力法】

    题目 【暴力法】解题思路 // abcd// 反转 dcba// 合并 dcba abcd// 要...

  • Leetcode-214-Shortest Palindrome

    在给定字符串前面添加若干字符使得字符串变成回文字符串,问回文字符串中最短的字符串是什么。 这题的思路很简单,就是找...

  • 214. 最短回文串

    给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。 示...

  • leetCode-05 《最长回文子串》

    最长回文子串 暴力枚举法 中心扩散法

  • leetcode 5-Longest Palindromic S

    方法一 暴力法 由长到短遍历所有子字符串, 若为回文字符串则返回遍历时间复杂度O(n^2), 判断回文时间复杂度O...

  • 最长回文子串

    问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度。 解法1:暴力解法 找到字符串的所有子串,判断...

  • Java实现每日一道算法面试题(6):leetcode214 最

    题目:给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串...

  • LeetCode面试题目——PHP实现最短回文串

    题目 给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串...

  • 最短回文串

    给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。 示...

  • 214. Shortest Palindrome

    给定一个字符串s,可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。 问题等...

网友评论

      本文标题:214. 最短回文串【字符串:回文串】【暴力法】

      本文链接:https://www.haomeiwen.com/subject/vakwsktx.html