java 809 128 题_Java实现 LeetCode 809 情感丰富的文字 (暴力)

809. 情感丰富的文字

有时候人们会用重复写一些字母来表示额外的感受,比如 “hello” -> “heeellooo”, “hi” -> “hiii”。我们将相邻字母都相同的一串字符定义为相同字母组,例如:“h”, “eee”, “ll”, “ooo”。

对于一个给定的字符串 S ,如果另一个单词能够通过将一些字母组扩张从而使其和 S 相同,我们将这个单词定义为可扩张的(stretchy)。扩张操作定义如下:选择一个字母组(包含字母 c ),然后往其中添加相同的字母 c 使其长度达到 3 或以上。

例如,以 “hello” 为例,我们可以对字母组 “o” 扩张得到 “hellooo”,但是无法以同样的方法得到 “helloo” 因为字母组 “oo” 长度小于 3。此外,我们可以进行另一种扩张 “ll” -> “lllll” 以获得 “helllllooo”。如果 S = “helllllooo”,那么查询词 “hello” 是可扩张的,因为可以对它执行这两种扩张操作使得 query = “hello” -> “hellooo” -> “helllllooo” = S。

输入一组查询单词,输出其中可扩张的单词数量。

示例:

输入:

S = “heeellooo”

words = [“hello”, “hi”, “helo”]

输出:1

解释:

我们能通过扩张 “hello” 的 “e” 和 “o” 来得到 “heeellooo”。

我们不能通过扩张 “helo” 来得到 “heeellooo” 因为 “ll” 的长度小于 3 。

说明:

0 <= len(S) <= 100。

0 <= len(words) <= 100。

0 <= len(words[i]) <= 100。

S 和所有在 words 中的单词都只由小写字母组成。

class Solution {

public int expressiveWords(String S, String[] words) {

int res = 0;

for (String word: words) {

if (canStretch(word.toCharArray(), S.toCharArray()))

res++;

}

return res;

}

private boolean canStretch(char[] word, char[] target) {

int i = 0, j = 0;

while (i < word.length && j < target.length) {

if (word[i] != target[j]) return false;

char ch = word[i];

int count1 = 0;

while (i < word.length && word[i] == ch) {

count1++;

i++;

}

int count2 = 0;

while (j < target.length && target[j] == ch) {

count2++;

j++;

}

if (count1 == count2) continue;

if (count1 > count2) return false;

if (count2 < 3) return false;

}

return i == word.length && j == target.length;

}

}

Java实现 LeetCode 831 隐藏个人信息(暴力)

831. 隐藏个人信息 给你一条个人信息字符串 S,它可能是一个 邮箱地址 ,也可能是一串 电话号码 . 我们将隐藏它的隐私信息,通过如下规则: 电子邮箱 定义名称 name 是长度大于等于 2 (l ...

Java实现 LeetCode 827 最大人工岛(DFS+暴力模拟)

827. 最大人工岛 在二维地图上, 0代表海洋, 1代表陆地,我们最多只能将一格 0 海洋变成 1变成陆地. 进行填海之后,地图上最大的岛屿面积是多少?(上.下.左.右四个方向相连的 1 可形成岛屿 ...

Java实现 LeetCode 825 适龄的朋友(暴力)

825. 适龄的朋友 人们会互相发送好友请求,现在给定一个包含有他们年龄的数组,ages[i] 表示第 i 个人的年龄. 当满足以下条件时,A 不能给 B(A.B不为同一人)发送好友请求: age[B ...

Java实现 LeetCode 822 翻转卡片游戏(暴力)

822. 翻转卡片游戏 在桌子上有 N 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样). 我们可以先翻转任意张卡片,然后选择其中一张卡片. 如果选中的那张卡片背面的数字 X ...

Java实现 LeetCode 821 字符的最短距离(暴力)

821. 字符的最短距离 给定一个字符串 S 和一个字符 C.返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组. 示例 1: 输入: S = "loveleet ...

Java实现 LeetCode 820 单词的压缩编码(暴力)

820. 单词的压缩编码 给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A. 例如,如果这个列表是 ["time", "me", & ...

Java实现 LeetCode 812 最大三角形面积 (暴力)

812. 最大三角形面积 给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积. 示例: 输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0] ...

Java实现 LeetCode 807 保持城市天际线 (暴力)

807. 保持城市天际线 在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度. 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度. 高度 0 也被认为是建筑物. 最后 ...

Java实现 LeetCode 794 有效的井字游戏 (暴力分析)

794. 有效的井字游戏 用字符串数组作为井字游戏的游戏板 board.当且仅当在井字游戏过程中,玩家有可能将字符放置成游戏板所显示的状态时,才返回 true. 该游戏板是一个 3 x 3 数组,由字 ...

随机推荐

VS2012 Unit Test 个人学习汇总(含目录)

首先,给出MSDN相关地址:http://msdn.microsoft.com/en-us/library/Microsoft.VisualStudio.TestTools.UnitTesting.a ...

Kooboo CMS - Html.FrontHtml[Helper.cs] 各个方法详解

下面罗列了方法详解,每一个方法一篇文章. Kooboo CMS - @Html.FrontHtml().HtmlTitle() 详解 Kooboo CMS - Html.FrontHtml.Posit ...

ORACLE字符集基础知识

概念描叙    ORACLE数据库有国家字符集(national character set)与数据库字符集(database character set)之分.两者都是在创建数据库时需要设置的.国家 ...

allocation size overflow

var cityID="1"; var areaHtml=""; var storeHtml=""; //区域异步 function Get ...

Linux系统下Redis安装(一)

最近项目要使用Redis,特将这段时间将Redis的学习经验与大家分享,算是对这段时间学习成果的总结和技术提炼,不足之处还望大家批评指正. 项目背景: 有些很少改动的数据和经常使用的数据(例如系统中下 ...

JS——时间日期控件

原文:http://blog.sina.com.cn/s/blog_621768f30100qmfz.html 今天找到一个还不错的日历控件 下载地址:http://www.my97.net/dp/d ...

mysql时间日期相加相减实现

分享篇mysql中日期的一些操作,就是我们常常会用到的mysql时间日期的相加或者相减的了,这个mysql也自己带了函数,有需要的朋友可以参考一下. 最简单的方法 select TO_DAYS(str ...

JTree demo

JFrame居中方法一:   setLocationRelativeTo(null); 注意:必须在整个frame初始化完成后再加上此语句,否则将显示在屏幕右下角 方法二: private Dimen ...

Python 面向对象(二) 特殊方法

一些Python特殊方法的汇总 __bases__    类的基类,返回元祖__base__  类的基类,也叫父类__call__ '类名()',类名加括号调用时执行的语句__class__ 对象或类 ...

在JS中如何判断所输入的是一个数、整数、正数、非数值?

1.判断是否为一个数字: Number(num)不为 NaN,说明为数字 2. 判断一个数为正数: var num=prompt("请输入:"); if(Number(num)&g ...


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部