news 2026/7/1 16:50:54

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/7/1 15:24:01

校园安全管理:中小学通过VoxCPM-1.5-TTS-WEB-UI发布防欺凌倡议

校园安全管理&#xff1a;中小学通过VoxCPM-1.5-TTS-WEB-UI发布防欺凌倡议 在一所普通中学的晨会上&#xff0c;广播里传来温和而坚定的声音&#xff1a;“同学们&#xff0c;尊重他人不是口号&#xff0c;而是我们每天的选择。对语言暴力说不&#xff0c;从你我做起。”这则防…

作者头像 李华
网站建设 2026/7/1 14:40:00

微PE官网WinPE运行Docker部署VoxCPM-1.5-TTS-WEB-UI

微PE运行Docker部署VoxCPM-1.5-TTS-WEB-UI&#xff1a;轻量系统中的AI语音合成实践 你有没有想过&#xff0c;一块U盘、一个老旧电脑&#xff0c;加上一套精简系统&#xff0c;就能跑起当前最先进的中文文本转语音大模型&#xff1f;这听起来像是极客的实验项目&#xff0c;但事…

作者头像 李华
网站建设 2026/7/1 14:08:53

uniapp+springboot短视频分享的微信小程序_wqda

目录技术架构设计核心功能实现性能优化策略安全防护措施项目技术支持论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作技术架构设计 uniapp作为前端框架&#xff0c;实现跨平台兼容性&…

作者头像 李华
网站建设 2026/7/1 10:56:59

Sonic项目README用Markdown编写,结构清晰易读

Sonic&#xff1a;轻量级数字人视频生成的技术革新 在短视频井喷、虚拟内容需求激增的今天&#xff0c;如何快速、低成本地生产高质量的“会说话”的人物视频&#xff0c;已成为从电商直播到在线教育多个领域的共同挑战。传统依赖3D建模与动作捕捉的数字人方案&#xff0c;虽然…

作者头像 李华
网站建设 2026/7/1 6:22:49

什么是IGMP Snooping

文章目录为什么需要IGMP SnoopingIGMP Snooping应用场景有哪些IGMP Snooping是如何工作的IGMP Snooping (Internet Group Management Protocol Snooping)是一种IPv4二层组播协议&#xff0c;通过侦听三层组播设备和用户主机之间发送的组播协议报文来维护组播报文的出接口信息&a…

作者头像 李华
网站建设 2026/7/1 8:10:52

什么是iNOF

文章目录为什么需要iNOFiNOF网络是如何工作的BFD与iNOF的关联iNOF的典型应用iNOF&#xff08;Intelligent Lossless NVMe Over Fabric&#xff0c;智能无损存储网络&#xff09;技术&#xff0c;通过对接入主机的快速管控&#xff0c;使智能无损网络能够更好的应用到存储系统&a…

作者头像 李华