算法题--小易喜欢的单词
2017-09-17 16:58
190 查看
题目描述
小易喜欢的单词具有以下特性:1.单词每个字母都是大写字母
2.单词没有连续相等的字母
3.单词没有形如“xyxy”(这里的x,y指的都是字母,并且可以相同)这样的子序列,子序列可能不连续。
例如:
小易不喜欢"ABBA",因为这里有两个连续的'B'
小易不喜欢"THETXH",因为这里包含子序列"THTH"
小易不喜欢"ABACADA",因为这里包含子序列"AAAA"
小易喜欢"A","ABA"和"ABCBA"这些单词
给你一个单词,你要回答小易是否会喜欢这个单词。
<?php $handler = fopen('php://stdin','r'); $str = trim(fgets($handler)); fclose($handler); if (judge1($str) && judge2($str) && judge3($str)) { echo 'Likes'; } else { echo 'Dislikes'; } function judge1($str) { //判断是否大写 for ($i=0;$i<strlen($str);$i++) { if (65>ord($str[$i]) || ord($str[$i])>90) { return false; } } return true; } function judge2($str) { //判断单词有没有连续的字母 for ($i=0;$i<strlen($str)-1;$i++) { if ($str[$i] == $str[$i+1]) { return false; } } return true; } function judge3($str) { //判断有没有xyxy子序列 $pattern = '/.*(\w).*(\w).*(.*\\1).*(.*\\2)/'; $res = preg_match($pattern, $str); return !$res; }
相关文章推荐
- 算法---小易喜欢的单词
- 网易编程题——小易喜欢的单词
- 网易笔试题:小易喜欢的单词
- 网易—小易喜欢的单词
- 牛客网小易喜欢的单词
- 网易笔试编程-小易喜欢的单词
- 网易 小易喜欢的单词
- 小易喜欢的单词
- 小易喜欢的单词
- 网易笔试编程题:小易喜欢的单词(C++)
- 小易喜欢的单词
- 小易喜欢的单词
- 小易喜欢的单词具有以下特性: 1.单词每个字母都是大写字母 2.单词没有连续相等的字母 3.单词没有形如“xyxy”(这里的x,y指的都是字母,并且可以相同)这样的子序列,子序列可能不连续。 例如: 小易不喜欢"ABBA",因为这里有两个连续的'B' 小易不喜欢"THETXH",因为这里包含子序列"THTH" 小易不喜欢"ABACADA",因为这里包含子序列"AAAA" 小易喜欢"
- 统计文件中单词频率的各种算法实现
- 最短路径算法-Dijkstra算法的应用之单词转换(词梯问题)
- 统计单词数 c算法
- ADV-78-算法提高-最长单词
- 数据结构与算法——单词查找树
- 【算法学习笔记】02.wikioi1205 单词翻转
- 程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]