算法 - 給出一個字符串str,輸出包含兩個字符串str的最短字符串,如str為abca時,輸出則為abcabca


今天碰到一個算法題覺得比較有意思,研究后自己實現了出來,代碼比較簡單,如發現什么問題請指正。
思路和代碼如下:


基本思路:
從左開始取str的最大子字符串,判斷子字符串是否為str的后綴,如果是則返回str加子字符串剩余部分;如果不是則逐步減少子字符串長度后在進行比較。
/*
* 給出一個字符串s,輸出包含兩個字符串s的最短字符串,如s為abca時,輸出則為abcabca */ public class ContainTwoString { public static String MergeString(String str) { String results = null; int len = str.length(); for (int i = len-1;i>+0;i--){ String prefix = str.substring(0, i); if (str.endsWith(prefix)){ results = str + str.substring(i,len); } } return results; } public static void main(String args[]){ System.out.println(ContainTwoString.MergeString("abca")); } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM