欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java常见面试题字符串转换回文串

程序员文章站 2022-03-15 20:59:44
两次面试两道算法题一道都没有写出来,真是感觉自己技术真的不够到位,而且学的知识也不成体系。接下来的日子,更加要重视基础,加强学习,痛定思痛!1.给定一个字符串s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。示例 1:输入:s = "aacecaaa"输出:"aaacecaaa"示例 2:输入:s = "abcd"输出:"dcbabcd"思路:字符串逆转+滑动窗格法解释:对于第二个逆转后的字符串,逐渐向左滑动,当与第一个....

两次面试两道算法题一道都没有写出来,真是感觉自己技术真的不够到位,而且学的知识也不成体系。接下来的日子,更加要重视基础,加强学习,痛定思痛!

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

示例 1:

输入:s = "aacecaaa"
输出:"aaacecaaa"

示例 2:

输入:s = "abcd" 
输出:"dcbabcd"

思路:字符串逆转+滑动窗格法

java常见面试题字符串转换回文串

解释:对于第二个逆转后的字符串,逐渐向左滑动,当与第一个数组完全重合时,那么开头多出来的字符串,即为添加的最短回文串。


public class Main{
    public static void main(String []args){
        String s="aacecaaa";
        StringBuilder sb=new StringBuilder(s);
        String r=sb.reverse().toString();
        int i=0;
        for(;i<r.length();i++){
            if(r.subString(i).equals(s.subString(0,s.length()-i))){
                break;
            }
        }
        System.out.println(r.subString(0,i)+s);
    }
}


2.字符串解码问题

本文地址:https://blog.csdn.net/chc960609/article/details/110292777