news 2026/4/22 4:58:10

leetcode 838. Push Dominoes 推多米诺

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 838. Push Dominoes 推多米诺

Problem: 838. Push Dominoes 推多米诺

解题过程

首先要正序遍历一次,拿到每个’.‘左侧的字符LR和索引,然后倒序遍历一次,拿到每个’.‘右侧的字符LR和索引。最后对每个’.',判断左右两侧字符,以及距离的,决定赋值L还是R或者不变的

Code

class Solution { public: string pushDominoes(string dominoes) { int n = dominoes.size(); // vector<bool> status(n, false); dominoes = "L" + dominoes + "R"; string ret = dominoes; pair<char, int> pre; vector<pair<char, int>> left(n+2); for(int i = 0; i <= n + 1; i++) { if(dominoes[i]!='.') { pre = {dominoes[i], i}; } else { left[i] = pre; } } char cl, cr; int disL, disR; for(int i = n+1; i >= 0; i--) { if(dominoes[i]!='.') { pre = {dominoes[i], i}; } else { // right[i] = pre; cl = left[i].first; cr = pre.first; disL = i - left[i].second; disR = pre.second - i; if(cl=='R' && cr=='L') { if( disR > disL ) { ret[i] = 'R'; } else if( disR < disL ) { ret[i] = 'L'; } } else if(cl=='R' && cr=='R') { ret[i] = 'R'; } else if(cl=='L' && cr=='L') { ret[i] = 'L'; } } } ret = ret.substr(1, n); return ret; // dominoes = "." + dominoes + "."; // unordered_map<int, char> ump; // for(int i = 1; i <= n; i++) { // if(dominoes[i]!='.') { // status[i] = true; // } else { // if( dominoes[i-1]=='R' && dominoes[i+1]=='L' ) { // status[i] = true; // } else if( dominoes[i-1]=='L' && dominoes[i+1]=='R' ) { // status[i] = true; // } else if(dominoes[i-1]=='R') { // status[i] = true; // ump[i] = 'R'; // } else if(dominoes[i+1]=='L') { // status[i] = true; // ump[i] = 'L'; // } // } // } // for(auto &&[i, c] : ump) { // dominoes[i] = c; // } // while(true) { // unordered_map<int, char> ump; // for(int i = 1; i <= n; i++) { // if(status[i] == false && dominoes[i] == '.') { // if( dominoes[i-1]=='R' && dominoes[i+1]=='L' ) { // status[i] = true; // } else if( dominoes[i-1]=='L' && dominoes[i+1]=='R' ) { // status[i] = true; // } else if(dominoes[i-1]=='R') { // status[i] = true; // ump[i] = 'R'; // } else if(dominoes[i+1]=='L') { // status[i] = true; // ump[i] = 'L'; // } // } // } // if(ump.size() == 0) break; // for(auto &&[i, c] : ump) { // dominoes[i] = c; // } // } // dominoes = dominoes.substr(1, n); // return dominoes; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 19:22:59

【ESP32】全面介绍

什么是ESP32&#xff1f; ESP32是一款由中国的乐鑫公司开发的低成本、低功耗的片上系统微控制器。它集成了Wi-Fi和蓝牙无线通信功能&#xff0c;因其强大的性能、丰富的外设接口和极高的性价比&#xff0c;已成为物联网项目中最流行、最核心的开发平台之一。 你可以把它理解为…

作者头像 李华
网站建设 2026/4/18 17:18:10

Jaeger追踪Sonic跨服务调用链路延迟瓶颈

Jaeger追踪Sonic跨服务调用链路延迟瓶颈 在虚拟主播、在线教育和短视频创作等AIGC应用场景中&#xff0c;数字人生成系统正变得越来越普及。用户只需上传一张人物图片和一段音频&#xff0c;就能快速获得一个“会说话”的数字人视频。这种看似简单的操作背后&#xff0c;其实隐…

作者头像 李华
网站建设 2026/4/18 7:43:40

uniapp+springboot电影院购票 选座小程序_kfsf

目录技术栈概述核心功能模块扩展性与安全性项目技术支持论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作技术栈概述 该电影院购票选座小程序采用前后端分离架构&#xff0c;前端基于U…

作者头像 李华
网站建设 2026/4/20 22:03:57

房地产展厅配备Sonic售楼小姐,24小时在线接待

房地产展厅配备Sonic售楼小姐&#xff0c;24小时在线接待 在传统售楼处里&#xff0c;客户一进门常会遇到这样的场景&#xff1a;销售顾问正忙于带看、电话不断&#xff0c;新来的访客只能等待&#xff1b;或是不同销售人员讲解口径不一&#xff0c;信息传递出现偏差。更不用说…

作者头像 李华
网站建设 2026/4/18 10:09:51

国际会议同传:VoxCPM-1.5-TTS-WEB-UI作为后备语音输出通道

国际会议同传&#xff1a;VoxCPM-1.5-TTS-WEB-UI作为后备语音输出通道 在一场跨国企业年度战略会议上&#xff0c;主会场的实时翻译系统突然因GPU资源过载而中断&#xff0c;现场陷入短暂沉默。三分钟后&#xff0c;技术人员迅速切换至备用语音通道——一个通过浏览器即可访问…

作者头像 李华
网站建设 2026/4/18 1:30:21

长城电脑合作前景:共同开拓党政军市场Sonic需求

长城电脑与Sonic数字人&#xff1a;共筑党政军信创生态新范式 在政策传播节奏日益加快、信息安全要求不断提升的今天&#xff0c;一场静默的技术变革正在悄然重塑党政军系统的数字化表达方式。过去&#xff0c;一段政策宣讲视频的诞生需要组织拍摄团队、布置灯光场景、安排发言…

作者头像 李华