1. 程式人生 > >小易喜歡的單詞(正則表達式)

小易喜歡的單詞(正則表達式)

ati code 組成 長度 question 這樣的 () public 數字

題目描述

小易喜歡的單詞具有以下特性:
1.單詞每個字母都是大寫字母
2.單詞沒有連續相等的字母
3.單詞沒有形如“xyxy”(這裏的x,y指的都是字母,並且可以相同)這樣的子序列,子序列可能不連續。
例如:
小易不喜歡"ABBA",因為這裏有兩個連續的‘B‘
小易不喜歡"THETXH",因為這裏包含子序列"THTH"
小易不喜歡"ABACADA",因為這裏包含子序列"AAAA"
小易喜歡"A","ABA"和"ABCBA"這些單詞
給你一個單詞,你要回答小易是否會喜歡這個單詞。

輸入描述:

輸入為一個字符串,都由大寫字母組成,長度小於100

輸出描述:

如果小易喜歡輸出"Likes",不喜歡輸出"Dislikes"
示例1

輸入

AAA

輸出

Dislikes

 1 import java.util.Scanner;
 2 
 3 /**
 4  * 
 5  * 小易喜歡的單詞
 6  * @author Dell
 7  *
 8  */
 9 public class Main {
10 
11 static public String str = "ABACADA";
12 
13 static public Boolean isLike = true;
14 
15 static public String f() {
16     //正則表達式
17     // 匹配 A-Z之間的數
18 if (!str.matches("[A-Z]+")) { 19 isLike = false; 20 } 21 // \\1 22 // 向前引用的意思。 23 // 比如前面用括號捕獲了一個子匹配,斜杠數字就表示和子匹配一樣的內容,第一個子匹配就是\1,第二就是\2 24 if (str.matches(".*(.)(\\1).*")) { 25 isLike = false; 26 } 27 if (str.matches(".*(.).*(.).*(\\1).*(\\2).*")) {
28 isLike = false; 29 30 } 31 if (isLike== true) { 32 return "Likes"; 33 }else { 34 return "Dislikes"; 35 } 36 } 37 38 public static void main(String[] args) { 39 Scanner sc = new Scanner(System.in); 40 str = sc.nextLine().trim(); 41 42 System.out.println( f()); 43 } 44 }

小易喜歡的單詞(正則表達式)