5838. 检查字符串是否为数组前缀
今天的题目都太水了。。。
T4就模板题目,改都不用改。。。
ak之后排名还没之前做三题高。。。
题目描述
给你一个字符串
s
和一个字符串数组words
,请你判断s
是否为words
的前缀字符串。字符串
s
要成为 words 的前缀字符串,需要满足:s
可以由words
中的前k
(k
为正数)个字符串按顺序相连得到,且k
不超过words.length
。如果
s
是words
的前缀字符串,返回true
;否则,返回false
。
解题思路
遍历就行,注意下几种特殊情况。
class Solution {
public boolean isPrefixString(String s, String[] words) {
int sidx=0;
int widx=0;
int k=0;
while(sidx<s.length()&&k<words.length) {
if(s.charAt(sidx)!=words[k].charAt(widx))
return false;
sidx++;
widx++;
if(widx==words[k].length()) {
k++;
widx=0;
}
}
if(sidx<s.length())
return false;
return (k>0&&widx==0)?true:false;
}
}
5839. 移除石子使总数最小
题目描述
给你一个整数数组piles
,数组下标从 0 开始,其中 piles[i]
表示第i
堆石子中的石子数量。另给你一个整数k
,请你执行下述操作恰好k
次:
选出任一石子堆piles[i]
,并从中移除floor(piles[i] / 2)
颗石子。
注意:你可以对同一堆石子多次执行此操作。
返回执行k
次操作后,剩下石子的最小总数。
floor(x)
为小于