小易喜欢的单词

来源:互联网 发布:在线脸型测试软件 编辑:程序博客网 时间:2024/05/05 17:46

摘自牛客网:

题目:

小易喜欢的单词具有以下特性: 
1.单词每个字母都是大写字母 
2.单词没有连续相等的字母 
3.单词没有形如“xyxy”(这里的x,y指的都是字母,并且可以相同)这样的子序列,子序列可能不连续。

例如: 
小易不喜欢”ABBA”,因为这里有两个连续的’B’ 
小易不喜欢”THETXH”,因为这里包含子序列”THTH” 
小易不喜欢”ABACADA”,因为这里包含子序列”AAAA” 
小易喜欢”A”,”ABA”和”ABCBA”这些单词 
给你一个单词,你要回答小易是否会喜欢这个单词。

输入描述:

输入为一个字符串,都由大写字母组成,长度小于100

输出描述:

如果小易喜欢输出”Likes”,不喜欢输出”Dislikes”

输入例子:

AAA

输出例子:

Dislikes

分析:

前两个条件“单词每个字母都是大写字母”和“单词没有连续相等的字母”比较容易判断,一个for循环解决。 
第3个条件可以通过先把字符串的只出现一次的字符去掉,剩下的字符判断是不是ABAB的形式。

答案:

链接:https://www.nowcoder.com/questionTerminal/ca7b8af83e2f4ec1af2f23d6733223b5?pos=3&orderByHotValue=0&questionTypes=000100
来源:牛客网

import java.util.Scanner;
public class Main {
  
    publicstatic void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        while(sc.hasNext()){
            String word = sc.next();
             
            if(isAllUpCase(word) && isConEql(word) && isThrEql(word))
                System.out.println("Likes");
            else
                System.out.println("Dislikes");
        }
    }
    //条件1
     publicstatic booleanisAllUpCase(String word){
        returnword.matches("[A-Z]+");
    }
    //条件2
    publicstatic booleanisConEql(String word){
        return!word.matches(".*(.)(\\1).*");
    }
    //条件3
    publicstatic booleanisThrEql(String word){
        return!word.matches(".*(.).*(.)(.*\\1)(.*\\2).*");
    }
}

0 0
原创粉丝点击