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

网站平台建设项目书济南软件制作

网站平台建设项目书,济南软件制作,家居网站建设精英,企业管理信息系统网站【力扣周赛】第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.yayakq.cn/news/695444/

相关文章:

  • 做英德红茶的网站湖州建设网站制作
  • 中山网站制作建设建设企业网站专业服务
  • 西安网站建设推广公司哪家好吉林省建设工程质监站网站
  • 专业移动网站建设商中山网站设计服务
  • 可以直接进入网站的正能量连接品牌网站建设k小蝌蚪
  • 上海网站建设的报价wordpress图片主题工业风
  • 网站语言那种好杭州建筑市场信用网
  • 设计微信网站建设wordpress xiu主题5.4
  • 转包网站建设做非法事情网页设计服装网站建设
  • 柳州网站网站怎样获得利润
  • 百度搜索什么关键词能搜到网站海外推广方案
  • 扬州做阿里巴巴的公司网站我需要网站
  • 网站制作北京网站建设公司哪家好做网站备案要处省的电话号码
  • 北京p2p网站建设权威发布封面
  • 电信宽带做网站专业的外贸网站建设公司排名
  • 上海平台网站建设公wordpress文章防采集
  • 关键词站长工具长沙网站建设定制
  • 营销型网站制作公司庆阳做网站的公司
  • 外国人做那个的视频网站购物网站的做
  • 做淘客网站用什么服务器好北京中天人建设工程有限公司网站
  • 网站推广公司网站大连效果图制作公司
  • 做企业网站哪家好wordpress关闭站点
  • 廊坊网站建设搭建网络公司经营范围如何填写
  • 腾讯云网站备案流程图贸泽电子元器件商城
  • 建设个直播网站要多少钱广州优化网站
  • 做冻品的网站哈尔滨网站建设渠道
  • 可以上传图片的公司网站wordpress装插件
  • 万江专业网站快速排名如何制作网页二维码
  • 知名的中文域名网站有哪些网页设计图片横向排列
  • 网站开发及服务合同湖南中耀建设集团有限公司网站