Can Place Flowers
题目描述:
给定一个数组,数组中1表示该位置栽花;0则代表没有。则要求返回该数组是否能种n株花,在花的栽种间隔为1的情况下。
例子:
具体描述看LeetCode605
解题思路:
本题中的主要难点有两个(1)0的个数和栽种花的数量的关系(2)如何处理好数组头部和尾部的情况和全0的情况。代码中先设置的c=1是为了处理开头为0的情况;在循环的外部是为了处理尾部结尾为0的情况。因为在开头为0和结尾为0的情况,0的个数和栽花数量的关系较为特殊。
代码如下:
|
|
给定一个数组,数组中1表示该位置栽花;0则代表没有。则要求返回该数组是否能种n株花,在花的栽种间隔为1的情况下。
具体描述看LeetCode605
本题中的主要难点有两个(1)0的个数和栽种花的数量的关系(2)如何处理好数组头部和尾部的情况和全0的情况。代码中先设置的c=1是为了处理开头为0的情况;在循环的外部是为了处理尾部结尾为0的情况。因为在开头为0和结尾为0的情况,0的个数和栽花数量的关系较为特殊。
|
|
具体描述可以看LeetCode227
|
|
给定一个字符串,其中包含着单词和空格;要求原地逆序字符串中的每个单词。
具体描述看LeetCode557
解题的想法很直接,我们定义一个函数用于逆序字符串中的单词,在主函数中找到需要逆序的字符起始位置和结束位置即可。
|
|
给定两个字符串s1和s2要求判断s2中是否包含着s1的排列组合子串。
具体描述见LeetCode567
本题中主要的思路是如何判断其存在排列组合的子串。这边主要利用了数组来保存字符串的信息。在遍历s2的子串过程中不断判断和s1的数组信息是否相同即可。需要注意的是在遍历s2的时候我们需要删除被遗弃的字符的信息,增加遍历字符的信息。
|
|
给定一组字符串,判断每个字符串中的字符是否在键盘上的同一行。
具体描述看LeetCode500
构建每一行键盘的哈希表,然后对每个字符串中的字符分别进行判断即可。
|
|
给定两个字符串,判断字符串之间是否存在子串关系
具体描述见LeetCode392
遍历源字符串的每个位置判断与目标字符串字符的关系;相同的情况位置加1,如果不相等的情况则不断循环到下一次字符相同的位置。需要注意的是在循环的过程中如果已经到达源字符串的末尾则直接返回false。
|
|
给定两个数组,找到两个数组中数字的交集
我们首先对第一个数组进行构建哈希表,然后遍历第二个数组,如果数字在哈希表中,将其保存到结果中,并将该值从哈希表中删除即可
|
|
逆序给定字符串中的元音字母
具体描述看LeetCode345
我们利用vector保存下字符串中是元音的字符的对应位置。然后对字符串中的这些字符进行逆序即可。
|
|
给定字符串返回其逆序后的结果
具体描述看LeetCode344
利用swap函数交换对应位置上的字符即可。
|
|
给定两个字符串,判断这两个字符对应位置是否有一一对应关系。我们认为egg和add是一一对应的关系;foo和bar就不是。
具体描述看LeetCode205
我们利用哈希表来保存字符串之间的对应关系,在遍历过程中判断字符是否已经出现在哈希表中,如果和已知的对应关系不匹配即返回false。需要注意的是字符串如果长度不一致即直接返回false;另外一一对应的关系是相互的,所以我们需要判断(t,s)和(s,t)
|
|