欢迎光临
我们一直在努力

计算机给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。-笔试面试资料

本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

这是qklbishe.com第6713 篇笔试面试资料
提供答案分析,通过本文《给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。-笔试面试资料 王治珺
import java.util.*;

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 
     * @param s string字符串 
     * @return string字符串
     */
    public String longestPalindrome (String s) {
        // write code here
        boolean[][] dp = new boolean[s.length()][s.length()];
        int left = 0, right = 0, len = 0;

        for (int i = 0; i < s.length(); ++i) {
            for (int j = 0; j < i; ++j) {
                dp[j][i] = (s.charAt(i) == s.charAt(j) && (i – j < 2 || dp[j + 1][i – 1]));
                if (dp[j][i] && len < i – j + 1) {
                    len = i – j + 1;
                    left = j;
                    right = i;
                }
            }
            dp[i][i] = true;
        }
        return s.substring(left, right + 1);
    }
}

今天 11:21:03 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

赞(0)
未经允许不得转载: 京大飞辅助网程序员面试-区块链javago面经 » 计算机给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。-笔试面试资料

相关推荐

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址