码迷,mamicode.com
首页 > 其他好文 > 详细

小易喜欢的单词(正则表达式)

时间:2018-05-02 13:08:08      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:正则表达   false   OLE   ada   并且   aaa   col   ext   stat   

题目描述

小易喜欢的单词具有以下特性:
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 }

 

小易喜欢的单词(正则表达式)

标签:正则表达   false   OLE   ada   并且   aaa   col   ext   stat   

原文地址:https://www.cnblogs.com/the-wang/p/8979398.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!