每日一题
文章平均质量分 53
death-silent
万物皆虚,万事皆允
展开
-
力扣(LeetCode) 541. 反转字符串 II
题目链接 题解 对于c艹来说,翻转字符串很简单,只要调用reverse就行了,配合s.begin()获得字符串的起始位置然后翻转就好了 代码 class Solution { public: string reverseStr(string s, int k) { for(int i=0,n=s.size();i<n;i+=2*k) { reverse(s.begin()+i,s.begin()+min(i+k,n)); .原创 2021-08-20 13:25:51 · 60 阅读 · 0 评论 -
力扣(LeetCode) 345. 反转字符串中的元音字母
题目链接 题解 这题并没有很难,只要用两个指针,一个从头开始走,一个从尾巴开始走,然后碰到元音就停下来交换就好了 代码 class Solution { public: string reverseVowels(string s) { int i=0; int j=s.size()-1; while(i<j) { while(i<j&&s[i]!='a'&&.原创 2021-08-19 13:47:01 · 115 阅读 · 0 评论 -
力扣(LeetCode) 552. 学生出勤记录 II
题目链接 今天的题比昨天难很多啊,很明显就是进阶版,题意昨天那篇博客解释过了,今天就不再解释一遍了,这题很明显是DP,记忆化搜索应该也行,但是我不确定是不是会爆掉,所以还是dp好点 我们设dp【i】【j】【k】为 第 i 天,缺席 j 次,连续迟到 k 次 那么依次进行分析 dp[i][0][0] = dp[i - 1][0][0] + dp[i - 1][0][1] + dp[i - 1][0][2] 。 今天截止0次缺席,今天截止0次连续迟到:过去一定也是0次缺席,但过去可以有0,1,2次连续迟到,因.原创 2021-08-18 14:07:56 · 52 阅读 · 0 评论 -
力扣(LeetCode)551. 学生出勤记录 I
昨天休息了,并且仔细思考了该怎么继续下去,坚持是个好习惯,我选择上力扣每天刷一题 题目:学生出勤记录 题目链接 题解 这一题算是比较简单的一题,考察的是字符串的操作,学生获得出勤奖励只要满足两个条件:1.缺勤天数<2天 2.连续迟到天数<3天 这里要注意的是连续两个字,如果出现这样的LALL学生任然可以获得出勤奖励,因为迟到并不连续,所以这题的解法就很清晰了 遍历一遍字符串s,分别开两个变量记录A出现的次数和L出现的次数,假设它们是numa和numl 如果s【i】等于A,那么numa加一,一原创 2021-08-17 14:06:31 · 60 阅读 · 0 评论