小易喜欢的单词(正则表达式)
Posted 千彧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小易喜欢的单词(正则表达式)相关的知识,希望对你有一定的参考价值。
题目描述
小易喜欢的单词具有以下特性:
1.单词每个字母都是大写字母
2.单词没有连续相等的字母
3.单词没有形如“xyxy”(这里的x,y指的都是字母,并且可以相同)这样的子序列,子序列可能不连续。
例如:
小易不喜欢"ABBA",因为这里有两个连续的‘B‘
小易不喜欢"THETXH",因为这里包含子序列"THTH"
小易不喜欢"ABACADA",因为这里包含子序列"AAAA"
小易喜欢"A","ABA"和"ABCBA"这些单词
给你一个单词,你要回答小易是否会喜欢这个单词。
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 }
以上是关于小易喜欢的单词(正则表达式)的主要内容,如果未能解决你的问题,请参考以下文章