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