1. 程式人生 > >彩色寶石項鏈

彩色寶石項鏈

system AI static public ava r+ spa 幫助 new

題目描述

有一條彩色寶石項鏈,是由很多種不同的寶石組成的,包括紅寶石,藍寶石,鉆石,翡翠,珍珠等。有一天國王把項鏈賞賜給了一個學者,並跟他說,你可以帶走這條項鏈,但是王後很喜歡紅寶石,藍寶石,紫水晶,翡翠和鉆石這五種,我要你從項鏈中截取連續的一小段還給我,這一段中必須包含所有的這五種寶石,剩下的部分你可以帶走。如果無法找到則一個也無法帶走。請幫助學者找出如何切分項鏈才能夠拿到最多的寶石。

輸入描述:

我們用每種字符代表一種寶石,A表示紅寶石,B表示藍寶石,C代表紫水晶,D代表翡翠,E代表鉆石,F代表玉石,G代表玻璃等等,我們用一個全部為大寫字母的字符序列表示項鏈的寶石序列,註意項鏈是首尾相接的。每行代表一種情況。

輸出描述:

輸出學者能夠拿到的最多的寶石數量。每行一個
示例1

輸入

ABCYDYE
ATTMBQECPD

輸出

1
3
 1 import java.util.Scanner;
 2 /*
 3  * 
 4  *  取寶石
 5  *   1、環 所以在二倍字符串下取
 6  *   2、以長度為循環條件  5<length<list.leng
 7  *   3、遍歷 取出長度為 length的字符串  判斷包含contain()
 8  */
 9 public class Main {
10 static public int f(String str) {
11 String ss = str+str; 12 for (int i = 5; i <=str.length(); i++) { 13 for (int j = 0; j <=str.length(); j++) { 14 String s = ss.substring(j,j+i); 15 if (s.contains("A")&&s.contains("B") 16 &&s.contains("C")&&s.contains("D")&&s.contains("E")) {
17 return str.length()-i; 18 } 19 } 20 } 21 return 0; 22 } 23 public static void main(String[] args) { 24 Scanner sc = new Scanner(System.in); 25 String str = sc.nextLine(); 26 String ss = str+str; 27 int res = f(str); 28 System.out.println(res); 29 } 30 }

彩色寶石項鏈