[编程题]小易喜欢的单词
Posted 虫儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[编程题]小易喜欢的单词相关的知识,希望对你有一定的参考价值。
小易喜欢的单词具有以下特性:
1.单词每个字母都是大写字母
2.单词没有连续相等的字母
3.单词没有形如“xyxy”(这里的x,y指的都是字母,并且可以相同)这样的子序列,子序列可能不连续。
例如:
小易不喜欢"ABBA",因为这里有两个连续的‘B‘
小易不喜欢"THETXH",因为这里包含子序列"THTH"
小易不喜欢"ABACADA",因为这里包含子序列"AAAA"
小易喜欢"A","ABA"和"ABCBA"这些单词
给你一个单词,你要回答小易是否会喜欢这个单词。
输入描述:
输入为一个字符串,都由大写字母组成,长度小于100
输出描述:
如果小易喜欢输出"Likes",不喜欢输出"Dislikes"
输入例子:
AAA
输出例子:
Dislikes
1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 Scanner sc = new Scanner(System.in); 7 while(sc.hasNext()){ 8 String word = sc.next(); 9 10 if(isAllUpCase(word) && isConEql(word) && isThrEql(word)) 11 System.out.println("Likes"); 12 else 13 System.out.println("Dislikes"); 14 } 15 } 16 //条件1 17 public static boolean isAllUpCase(String word){ 18 // return word.matches("[A-Z]+"); 19 return word.equals(word.toUpperCase()); 20 } 21 //条件2 22 public static boolean isConEql(String word){ 23 return !word.matches(".*(.)(\\1).*"); 24 } 25 //条件3 26 public static boolean isThrEql(String word){ 27 return !word.matches(".*(.).*(.)(.*\\1)(.*\\2).*"); 28 } 29 }
以上是关于[编程题]小易喜欢的单词的主要内容,如果未能解决你的问题,请参考以下文章