2018招商银行春招笔试编程题第一题
生活随笔
收集整理的這篇文章主要介紹了
2018招商银行春招笔试编程题第一题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:給出一個非空的字符串,判斷這個字符串是否是由它的一個子串進行多次首尾拼接構成的。
例如,“abcabcabc”滿足條件,因為它是由“abc”首尾拼接而成的,而“abcab”則不滿足條件。//畫外音:即不考慮只有本身是子串的這種情況。
輸入描述:非空字符串
輸出描述:如果字符串滿足上述條件,則輸出最長的滿足條件的子串,如果不滿足條件,則輸出false。
例如,“abcabcabc”滿足條件,因為它是由“abc”首尾拼接而成的,而“abcab”則不滿足條件。//畫外音:即不考慮只有本身是子串的這種情況。
輸入描述:非空字符串
輸出描述:如果字符串滿足上述條件,則輸出最長的滿足條件的子串,如果不滿足條件,則輸出false。
樣例:輸入abcabc? ? 輸出abc
算法思想:因為字符串起碼由兩個子串組成,那么我們從字符串中間位置開始截取,再將子串復制“字符串長除以子串長”次,與原字符串比較是否一樣。
代碼如下:
import java.util.Scanner; public class ZhaoHang18_1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();for(int i=str.length()/2-1;i>=0;i--){String substring = str.substring(0, i+1);StringBuffer sb = new StringBuffer();for(int j=0;j<str.length()/substring.length();j++){sb.append(substring);}if(sb.toString().equals(str)){System.out.println(substring);return;}}System.out.println(false);} }總結
以上是生活随笔為你收集整理的2018招商银行春招笔试编程题第一题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5G时代下的人工智能发展
- 下一篇: VML实例-可控箭头