news 2026/6/10 7:07:44

leetcode 767. Reorganize String 重构字符串-耗时100%

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 767. Reorganize String 重构字符串-耗时100%

Problem: 767. 重构字符串

解题过程

耗时100%,优先队列的,也就是堆的,先统计字符个数,然后放入队列中,最后拿到堆顶的字符和个数,放入结果字符串,计数-1,pop堆顶,pre = tmp,然后放入下一个字符串,之前堆顶的保存在pre中,放完下一个字符,然后将pre再次放到队列,做到拿一个,隔一个放回去,保证结果字符相邻的不相同,优先放置数量多的字符,数量少的放在中间

Code

using pr = pair<int, char>; class Solution { public: int ch[26]; string reorganizeString(string s) { priority_queue<pr, vector<pr>, less<pr>> pq; memset(ch, 0, sizeof(ch)); for(char& c : s) { ch[ c - 'a' ]++; } for(int i = 0; i < 26; i++) { if(ch[i]!=0) { pq.push({ch[i], i + 'a'}); } } pr tmp, pre={-100000,'a'}; string ret; while(!pq.empty()) { tmp = pq.top(); ret += tmp.second; // if(ret.size() > 1 && ret.back()==ret[ret.size()-2]) { // return ""; // } tmp.first--; pq.pop(); if(pre.first > 0) { pq.push(pre); } pre = tmp; } if(pre.first > 0) return ""; return ret; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 10:46:05

椭圆曲线中的Double-and-Add

这张图在讲一件事&#xff1a;椭圆曲线标量乘法 K⋅P&#xff08;也就是“用整数 K 去乘一个点 P”&#xff09;在实现里&#xff0c;最终会被拆成&#xff1a;上层的 点运算&#xff1a;EC-Double&#xff08;倍点&#xff0c;2Q&#xff09;和 EC-Add&#xff08;加点&#x…

作者头像 李华
网站建设 2026/6/10 10:51:40

【2025最新高维多目标优化】基于城市场景下无人机三维路径规划的导航变量的多目标粒子群优化算法NMOPSO研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

作者头像 李华
网站建设 2026/6/10 10:54:33

26、Linux 文本格式化与打印技术全解析

Linux 文本格式化与打印技术全解析 1. printf 的文本格式化应用 printf 主要用于脚本中对表格数据进行格式化,而非直接在命令行使用。不过,它也能解决多种格式化问题。 - 输出以制表符分隔的字段 : [me@linuxbox ~]$ printf "%s\t%s\t%s\n" str1 str2 str3 …

作者头像 李华
网站建设 2026/6/9 8:52:19

27、Linux 打印与程序编译指南

Linux 打印与程序编译指南 1. 向打印机发送打印任务 在类 Unix 系统中,CUPS 打印套件支持两种传统的打印方法。一种是 Berkeley 或 LPD 方法(用于 Unix 的 Berkeley 软件发行版),使用 lpr 程序;另一种是 SysV 方法(来自 Unix 的 System V 版本),使用 lp 程序。这…

作者头像 李华