当前位置: 首页 > news >正文

做app的网站网站收录大全

做app的网站,网站收录大全,五个h5制作网站,襄阳做淘宝网站推广【力扣周赛】第357场周赛 2810. 故障键盘题目描述解题思路 2811. 判断是否能拆分数组题目描述解题思路 2810. 故障键盘 题目描述 描述:你的笔记本键盘存在故障,每当你在上面输入字符 ‘i’ 时,它会反转你所写的字符串。而输入其他字符则可以…

【力扣周赛】第357场周赛

    • 2810. 故障键盘
      • 题目描述
      • 解题思路
    • 2811. 判断是否能拆分数组
      • 题目描述
      • 解题思路

2810. 故障键盘

题目描述

描述:你的笔记本键盘存在故障,每当你在上面输入字符 ‘i’ 时,它会反转你所写的字符串。而输入其他字符则可以正常工作。

给你一个下标从 0 开始的字符串 s ,请你用故障键盘依次输入每个字符。

返回最终笔记本屏幕上输出的字符串。

示例 1:

输入:s = "string"
输出:"rtsng"
解释:
输入第 1 个字符后,屏幕上的文本是:"s" 。
输入第 2 个字符后,屏幕上的文本是:"st" 。
输入第 3 个字符后,屏幕上的文本是:"str" 。
因为第 4 个字符是 'i' ,屏幕上的文本被反转,变成 "rts" 。
输入第 5 个字符后,屏幕上的文本是:"rtsn" 。
输入第 6 个字符后,屏幕上的文本是: "rtsng" 。
因此,返回 "rtsng" 。

示例 2:

输入:s = "poiinter"
输出:"ponter"
解释:
输入第 1 个字符后,屏幕上的文本是:"p" 。
输入第 2 个字符后,屏幕上的文本是:"po" 。
因为第 3 个字符是 'i' ,屏幕上的文本被反转,变成 "op" 。
因为第 4 个字符是 'i' ,屏幕上的文本被反转,变成 "po" 。
输入第 5 个字符后,屏幕上的文本是:"pon" 。
输入第 6 个字符后,屏幕上的文本是:"pont" 。
输入第 7 个字符后,屏幕上的文本是:"ponte" 。
输入第 8 个字符后,屏幕上的文本是:"ponter" 。
因此,返回 "ponter" 。

提示:

1 <= s.length <= 100
s 由小写英文字母组成
s[0] != ‘i’

解题思路

思路:直接模拟。

class Solution {
public:string finalString(string s) {int n=s.size();for(int i=0;i<n;i++){if(s[i]=='i'){reverse(s.begin(),s.begin()+i);s.erase(i,1);i--;}}return s;}
};

总结:reverse(s.begin(),s.end()),其是左闭右开区间[begin,end);s.erase(index,len)表示删除下标从index开始长度为len的元素;此时删除后要将i减去一喔!

2811. 判断是否能拆分数组

题目描述

描述:给你一个长度为 n 的数组 nums 和一个整数 m 。请你判断能否执行一系列操作,将数组拆分成 n 个 非空 数组。

在每一步操作中,你可以选择一个 长度至少为 2 的现有数组(之前步骤的结果) 并将其拆分成 2 个子数组,而得到的 每个 子数组,至少 需要满足以下条件之一:

子数组的长度为 1 ,或者
子数组元素之和 大于或等于 m 。
如果你可以将给定数组拆分成 n 个满足要求的数组,返回 true ;否则,返回 false 。

注意:子数组是数组中的一个连续非空元素序列。

示例 1:

输入:nums = [2, 2, 1], m = 4
输出:true
解释:
第 1 步,将数组 nums 拆分成 [2, 2] 和 [1] 。
第 2 步,将数组 [2, 2] 拆分成 [2] 和 [2] 。
因此,答案为 true 。

示例 2:

输入:nums = [2, 1, 3], m = 5 
输出:false
解释:
存在两种不同的拆分方法:
第 1 种,将数组 nums 拆分成 [2, 1] 和 [3] 。
第 2 种,将数组 nums 拆分成 [2] 和 [1, 3] 。
然而,这两种方法都不满足题意。因此,答案为 false 。

示例 3:

输入:nums = [2, 3, 3, 2, 3], m = 6
输出:true
解释:
第 1 步,将数组 nums 拆分成 [2, 3, 3, 2] 和 [3] 。
第 2 步,将数组 [2, 3, 3, 2] 拆分成 [2, 3, 3] 和 [2] 。
第 3 步,将数组 [2, 3, 3] 拆分成 [2] 和 [3, 3] 。
第 4 步,将数组 [3, 3] 拆分成 [3] 和 [3] 。
因此,答案为 true 。 

提示:

1 <= n == nums.length <= 100
1 <= nums[i] <= 100
1 <= m <= 200

解题思路

思路:由于最后必定会拆分出一个长度为2的数组,故只需要判断数组中是否存在相邻的两个数之和大于等于m即可。

class Solution {
public:bool canSplitArray(vector<int>& nums, int m) {int n=nums.size();if(n<=2)return true;for(int i=1;i<n;i++){if(nums[i]+nums[i-1]>=m)return true;}return false;}
};

总结:假设1 1 1 1 2 2 1 1 1 1,m=4,那么存在2 2其和等于4,故可以像砍一刀一样左右各自依次划分长度为1的数组。

http://www.ritt.cn/news/1486.html

相关文章:

  • 深圳网站建设小程序天安云谷东莞网络推广代运营
  • 成都古怪科技网站建设公司免费网站代理访问
  • 在大学里网站建设属于什么专业快手作品免费推广软件
  • 建设银行 上海科技中心网站如何创建自己的域名
  • 分类信息网站建设专职引擎优化搜索
  • 西八里庄网站建设国家重大新闻
  • html是建网站导航栏怎么做免费推广的方式
  • 网站后台登陆验证码不显示微信拓客的最新方法
  • 重庆给商家企业做网站电子商务与网络营销题库
  • 管理系统中计算机应用北京网站优化快速排名
  • 机械网站建设深圳百度seo优化
  • 网站宝二级域名怎么设置企业网站定制
  • 找人做网站需要注意什么网站测试报告
  • 网站建设公司 待遇企业网站的功能
  • 佛山做外贸网站方案电子商务
  • 武汉网站建设乐云seo快速排名seo软件
  • 网站专题分类关键词你们懂的
  • 网购网站建设视频教程深圳关键词优化
  • 怎么做网站app成都新闻今日最新消息
  • 前端学到什么程度可以找到工作aso优化排名
  • ftp空间网站员工培训
  • 南京企业做网站如何自己建网站
  • 华为手表网站网络营销网
  • 包头网站建设易通2022年最近一周新闻大事
  • 滨江做网站亚马逊关键词工具哪个最准
  • 建筑给排水代做网站线上推广平台都有哪些
  • 如何做中英文网站设计sem是什么的缩写
  • 网站用哪些系统做的seo广州工作好吗
  • wordpress搬家到nginxseo优化行业
  • 网站制作开发公司爱链接网如何使用