1.交替合并字符串
题目描述:
给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。
返回合并后的字符串 。
示例:
输入:word1 = “abc”, word2 = “pqr”
输出:“apbqcr”
解释:字符串合并情况如下所示:
word1: a b c
word2: p q r
合并后: a p b q c r
class Solution {
public String mergeAlternately(String word1, String word2) {
StringBuilder word = new StringBuilder();
int i = 0, j = 0;
while(i < word1.length() && j < word2.length()){
char c = word1.charAt(i);
word.append(c);
i++;
char s = word2.charAt(j);
word.append(s);
j++;
}
while(i < word1.length()){
char c = word1.charAt(i);
word.append(c);
i++;
}
while(j < word2.length()){
char c = word2.charAt(j);
word.append(c);
j++;
}
return word.toString();
}
}
2.拥有最多糖果的孩子
题目描述:
给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。
对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。
示例:
输入:candies = [2,3,5,1,3], extraCandies = 3
输出:[true,true,true,false,true]
class Solution {
public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) {
List<Boolean> list = new ArrayList<>() ;
for (int i = 0; i < candies.length; i++) {
candies[i] += extraCandies;
list.add(Check(candies,i));
candies[i] -= extraCandies;
}
return list;
}
public static Boolean Check(int[] candies,int index){
Boolean result = true;
int max = candies[0];
for (int i = 1; i < candies.length; i++) {
if(candies[i] > max) max = candies[i];
}
if(max > candies[index]) return false;
return result;
}
}
3.种花问题
题目描述:
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false 。
示例:
输入:flowerbed = [1,0,0,0,1], n = 1
输出:true
class Solution {
public boolean canPlaceFlowers(int[] flowerbed, int n) {
int count = 0;
if(flowerbed.length == 1 && flowerbed[0] == 0){
count ++;
}
else if(flowerbed[0] == 0 && flowerbed[1] == 0){
flowerbed[0] = 1;
count++;
}
for (int i = 1; i < flowerbed.length - 1; i++) {
if(flowerbed[i-1] == 0 && flowerbed[i+1] == 0){
if(flowerbed[i] == 0){
count ++;
flowerbed[i] = 1;
}
}
}
if(flowerbed.length >= 2 && flowerbed[flowerbed.length - 2] == 0 && flowerbed[flowerbed.length - 1] == 0){
flowerbed[flowerbed.length - 1] = 1;
count ++;
}
if(count >= n) return true;
else return false;
}
}