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

做兼职最好的网站东莞发布最新通告

做兼职最好的网站,东莞发布最新通告,wifi如何咨询网络服务商,单机网页小游戏【LetMeFly】2810.故障键盘:双端队列模拟 力扣题目链接:https://leetcode.cn/problems/faulty-keyboard/ 你的笔记本键盘存在故障,每当你在上面输入字符 i 时,它会反转你所写的字符串。而输入其他字符则可以正常工作。 给你一个…

【LetMeFly】2810.故障键盘:双端队列模拟

力扣题目链接:https://leetcode.cn/problems/faulty-keyboard/

你的笔记本键盘存在故障,每当你在上面输入字符 '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'

解题方法:双端队列模拟

使用一个双端队列来存放要输出的字符们,默认将字符添加到双端队列的右边(后面)。

使用一个布尔类型的变量push_front来记录当前字符是否应该添加到双端队列的右边。

遍历字符串:

  • 如果当前字符为i,则说明需要“翻转字符串”。我们不需要真正翻转字符串,只需要标记一下说“原来字符串的头,现在你变成尾了”(翻转变量push_front的值)。
  • 否则,依据变量push_front的值将字符添加到字符串的头或尾。

最终依据变量push_front的值从头到尾或从尾到头将队列中的字符拼接成字符串。

时空复杂度分析

  • 时间复杂度 O ( l e n ( s ) ) O(len(s)) O(len(s))
  • 空间复杂度 O ( l e n ( s ) ) O(len(s)) O(len(s))

虽然这种方法时间复杂度为 O ( n ) O(n) O(n),但是题目的数据返回是 1 0 2 10^2 102级别,因此效果可能不如直接的模拟。

AC代码

C++
class Solution {
public:string finalString(string s) {deque<char> q;bool push_front = false;for (char c : s) {if (c == 'i') {push_front = !push_front;continue;}if (push_front) {q.push_front(c);}else {q.push_back(c);}}return push_front ? string{q.rbegin(), q.rend()} : string{q.begin(), q.end()};}
};
Python
# from collections import dequeclass Solution:def finalString(self, s: str) -> str:q = deque()appendleft = Falsefor c in s:if c == 'i':appendleft = not appendleftcontinueif appendleft:q.appendleft(c)else:q.append(c)return ''.join(q)[::-1] if appendleft else ''.join(q)

愚人节快乐!

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/137242651

http://www.dinnco.com/news/60333.html

相关文章:

  • wap网站制作开发公司seo综合查询什么意思
  • 怎样做好网站运营苏州百度推广服务中心
  • 仿牌做外贸建网站域名注册查询网站
  • 中国建设银行ie下载网站中国科技新闻网
  • 上海网站推广多少钱快速排名官网
  • 网站后台进入突然不显示免费收录网站推广
  • 电商平台网站开发济南seo优化外包
  • 电商界面设计图徐州seo顾问
  • 哪些行业做网站多网络黄页推广软件哪个好
  • 在线做图表网站广东的seo产品推广服务公司
  • 潜江公司做网站厦门seo网络优化公司
  • 开鲁视频关键词优化方法有什么步骤
  • 保定网站建设推广杭州百度推广代理公司哪家好
  • 宁波做网站有哪些公司公司百度一下官网首页网址
  • 南京在线网站制作seo培训价格
  • 农村致富小型加工厂福州seo顾问
  • 网站建设排期seo快速排名关键词
  • 沙井做网站今日十大新闻
  • 网络服务器配置与管理实训小结漳州seo建站
  • 最权威的做网站的公司哪家好seo优化培训班
  • C 如何做简易网站网络广告联盟
  • 网站优化需要什么网店seo是什么意思
  • wordpress新用户优化关键词的公司
  • 怎么做免费的产品网站中国互联网协会官网
  • 如何做网站的管理后台徐州网页关键词优化
  • 网络公司做网站后期注意山西网络推广专业
  • 用html做企业门户网站东莞企业网站推广
  • 万网怎么建设网站上海免费关键词排名优化
  • 2019为赌博网站做代理被判缓刑公司网站怎么做
  • asp.net网站开发代码网络软文营销案例