zoukankan      html  css  js  c++  java
  • 小易喜欢的单词(正则表达式)

    题目描述

    小易喜欢的单词具有以下特性:
    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 }
  • 相关阅读:
    html5快速入门(四)—— JavaScript
    SJPullDownMenu下拉菜单框架使用
    HTML5快速入门(三)—— 标签综合运用
    html5快速入门(二)—— CSS简介
    html5快速入门(一)—— html简介
    Robotium测试套管理测试用例
    从GitHub远程仓库中删除文件夹或文件
    上传本地代码到GitHub
    Jenkins关联GitHub进行构建
    Jenkins忘记用户名密码
  • 原文地址:https://www.cnblogs.com/the-wang/p/8979398.html
Copyright © 2011-2022 走看看