[Leetcode] 767. Reorganize String 解题报告

大模型运维实战:从GPU选型到推理服务稳定落地 大模型服务进入生产环境后,运维对象从传统进程转向GPU显存、KV Cache、推理吞吐等动态资源。显存利用率、首token延迟、并发队列深度等指标,直接影响模型服务的质量与成本。理解推理框架的内存分配机制、掌握监控告警与自动化扩容手段,是保障服务稳定的关键。这类能力广泛应用于企业私有化部署、智能客服、知识库问答等场景,帮助运维团队从被动救火转向主动容量规划与性能调优。本文围绕大模型运维的完整路线,梳理从硬件选型、推理部署到监控排障的实战经验,并算清一份真实项目的长期成本账。 阅读详情

题目:

Given a string S, check if the letters can be rearranged so that two characters that are adjacent to each other are not the same.

If possible, output any possible result.  If not possible, return the empty string.

Example 1:

Input: S = "aab"
Output: "aba"

Example 2:

Input: S = "aaab"
Output: ""

Note:

  • S will consist of lowercase letters and have length in range [1, 500].

思路:

我们的思路是:首先建立每个字符到其出现次数的映射,然后建立一个大顶堆。每次都取出大顶堆上的两个元素,然后将其加入结果字符串中。如果这两个元素的剩余出现次数还大于0,则我们将其压入大顶堆中继续循环。这样直到大顶堆为空。

我们最后只需要判断用这种贪心算法得到的结果的最后两个字符是否相同,如果相同,则说明无法返回符合条件的结果;否则直接返回结果。算法的时间复杂度是O(nlogn),空间复杂度是O(n)。

代码:

class Solution {
public:
    string reorganizeString(string S) {
        unordered_map<char, int> hash;      // map from char to its appear count
        for (auto c : S) {
            ++hash[c];
        }
        vector<vector<int>> vec;
        for (auto it = hash.begin(); it != hash.end(); ++it) {
            vec.push_back({it->second, it->first});
        }
        make_heap(vec.begin(), vec.end());
        string ret;
        while (!vec.empty()) {
            if (vec.size() == 1) {
                ret.insert(ret.end(), vec[0][0], vec[0][1]);
                vec.pop_back();
            }
            else {
                vector<int> first = vec[0];         // pop the first two chars that appear most
                pop_heap(vec.begin(), vec.end());
                vec.pop_back();
                vector<int> second = vec[0];
                pop_heap(vec.begin(), vec.end());
                vec.pop_back();
                ret.push_back(first[1]), ret.push_back(second[1]);
                if (--first[0] > 0) {               // push the two chars if they have remainings
                    vec.push_back(first);
                    push_heap(vec.begin(), vec.end());
                }
                if (--second[0] > 0) {
                    vec.push_back(second);
                    push_heap(vec.begin(), vec.end());
                }
            }
        }
        int length = ret.length();
        if (length > 2 && ret[length - 1] == ret[length - 2]) {
            return "";
        }
        else {
            return ret;
        }
    }
};
基于Python的网贷平台数据爬虫实战:Scrapy+Selenium+反反爬策略 python复制下载# items.py本文详细介绍了如何使用Python构建一个完整的网贷平台数据爬虫系统,涵盖了从基础爬取到高级反反爬策略的全套解决方案。我们使用了Scrapy框架作为基础,结合Selenium处理动态内容,实现了多种反反爬策略,并探讨了分布式爬虫的实现方式。机器学习识别验证码基于深度学习的网页结构变化检测自动化行为模拟的更精细控制基于Kubernetes的弹性爬虫集群。 阅读详情

相关推荐

数字摄影与摄像中的图像信号处理器(ISP):流程与经典算法详解

图像信号处理器(Image Signal Processor, ISP)是现代数字成像系统(如智能手机、数码相机、网络摄像头等)中的核心组件,扮演着将图像传感器(如CMOS或CCD)捕获的原始光电信号转换为高质量、可供观看或进一步处理的数字图像的关键角色。在数字摄影和摄像的整个链路中,光线首先通过镜头(Lens)聚焦到图像传感器上,传感器将光信号转换为模拟电信号,随后经过模数转换(A/D转换)变为原始的数字图像信号。

qq_44682523的博客 3722

LeetCode 每日一题767. 重构字符串

767. 重构字符串 给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。 若可行,输出任意可行的结果。若不可行,返回空字符串。 示例 1: 输入: S = "aab" 输出: "aba" 示例 2: 输入: S = "aaab" 输出: "" 注意: S 只包含小写字母并且长度在[1, 500]区间内。 解题思路: 先思考不能重构的情况,当有一个字母的次数大于整个字符串的一半,即 maxCount > (S.length() + 1) / 2。反之,字符串可以重构。 可以重

雷震子的博客 683

ThinkPHP+Layui开发的ERP管理系统

ERP采购生产销售系统,一款基于ThinkPHP+Layui开发的ERP管理系统,帮助中小企业实现ERP管理规范化,此系统能为你解决五大方面的经营问题:1.采购管理 2.销售管理 3.仓库管理 4.资金管理 5.生产管理,适用于:服装鞋帽、化妆品、机械机电、家具装潢、建材行业、快销品、母婴用品、办公用品、汽配汽修、生鲜农贸、手机通讯、数码家电、医药用品、制造业、信息技术服务行业等。提供全部无加密服务端和前端源代码,独立部署,不受限制。

u011092458的博客 788

leetCode767:重构字符串

目录 一、题目描述 二、解题思路 三、代码实现 一、题目描述 给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。 若可行,输出任意可行的结果。若不可行,返回空字符串。 示例1: 输入: S = "aab"输出: "aba" 示例 2: 输入: S = "aaab"输出: "" 注意: S 只包含小写字母并且长度在[1, 500]区间内。 二、解题思路 可以先直观经验考虑这道题,应该能想到插空法,就是在两个相同的字符之间插入一个不同的字符。那就会想到统计每种字符.

三中两明的博客 391

部署Doris

本文详细介绍了Apache Doris三节点集群(3 FE + 3 BE)的部署流程。首先从硬件配置、系统参数调优等准备工作入手,然后分步说明FE和BE节点的配置方法,包括端口设置、存储路径规划等关键参数。部署完成后提供SQL测试用例和数据一致性验证方法,并总结常见问题解决方案,如节点加入失败、磁盘容量异常等。文档包含完整的命令和配置示例,强调高可用配置和监控建议,为生产环境部署提供实用指导。

神棍之路 1712

主流双目相机技术参数横向评测:从ZED到国产新锐

本文对主流双目相机技术参数进行了横向评测,涵盖ZED、Bumblebee等国际品牌及国产新锐产品。详细分析了分辨率、帧率、视场角等关键参数,并针对机器人导航、AR/VR交互、工业检测等场景提供选型建议。特别推荐ZED相机在科研领域的成熟应用,以及国产方案在长基线设计和主动双目技术上的创新突破。

weixin_33670786的博客 318

LeetCode 767. 重构字符串(堆)

文章目录1. 题目2. 解题 1. 题目 给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。 若可行,输出任意可行的结果。若不可行,返回空字符串。 示例 1: 输入: S = "aab" 输出: "aba" 示例 2: 输入: S = "aaab" 输出: "" 注意: S 只包含小写字母并且长度在[1, 500]区间内。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reorganize-string 著作权归领扣网络所

Michael是个半路程序员 2342

Esp32蓝牙Hid调用方案 http执行设备、鼠标、键盘相关操作

本文主要介绍 Esp32 蓝牙 Hid 相关的多种操作方式,详细的设备、鼠标、键盘相关操作的 http 调用方法。下面是整理出的所有 http 调用方法和 rhino 引擎方式。本机调用的话直接使用http://localhost:8080 如果是局域网调用则使用软件里的地址 比如我的是http://192.168.1.5:8080。文件地址: https://www.123865.com/s/Qtm4jv-xyZbd?使用前需要一块烧录好的ESP32板子并在手机安装好embedded软件用于蓝牙通信。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 569

leetcode | go | 第767题 | 重构字符串

【代码】leetcode | go | 第767题 | 重构字符串。

iCling的博客 497

【系统分析师】第2章-基础知识:数学与工程基础(核心总结)

数学与工程基础

数据知道的博客 6812

Go游戏服务器开发的一些思考(一):语言层面

Go是比C++更好用的高级语言使用Go作为服务器开发的主语言前,首先需要对Go语言做下定性。在接触Go前,可能给人的印象(至少是我),Go是一门脚本语言。看了 官方文档 ,才知道Go是一门高级语言。与C++相比,它有以下优势: 面向接口的编程没有C++复杂的面向对象语法,如类、继承、多态、虚函数等等。Go中只有结构与接口,从语言层面上,直接指导功能与功能间的解耦。直接且语法简单 提供语言反射机制提供

范安崇的博客 9559

Leetcode-767:重构字符串

题目链接 https://leetcode-cn.com/problems/reorganize-string/ 题目 给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。 若可行,输出任意可行的结果。若不可行,返回空字符串。 示例 示例 1: 输入: S = "aab" 输出: "aba" 示例 2: 输入: S = "aaab" 输出: "" 注意 S只包含小写字母并且长度在[1, 500]区间内。 思路 首先我们先考虑,一个字符串能否通过重新排列,使得两.

道纪书生的博客 445

基于Python的智能动漫更新监控爬虫系统:从原理到实战

本文详细介绍了如何使用Python构建一个智能化的动漫更新监控系统,涵盖从基础爬虫到高级自动化监控的全套解决方案。文章将深入探讨最新的网络爬虫技术,包括异步请求、反反爬策略、智能解析算法等,并提供完整的代码实现和性能优化方案。通过本系统,用户可以实时获取多个动漫平台的更新信息,并通过多种渠道接收通知。关键词:Python爬虫、动漫监控、自动化通知、异步爬虫、反反爬策略。

2201_76125261的博客 902

【LeetCode】767. Reorganize String 解题报告(Python)

【LeetCode】767. Reorganize String 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.me/ 题目地址:https://leetcode.com/problems/reorganize-str...

负雪明烛 3373

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

767. Reorganize String**

767. Reorganize String** https://leetcode.com/problems/reorganize-string/ 题目描述 Given a string S, check if the letters can be rearranged so that two characters that are adjacent to each other are not t...

珍妮的选择的博客 390

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Leetcode算法学习日志-767 Reorganize String

Leetcode 767 Reorganize String 题目原文 Given a string S, check if the letters can be rearranged so that two characters that are adjacent to each other are not the same. If possible, output any possi

Zarlove的博客 1291

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

[leetcode]767. Reorganize String

[leetcode]767. Reorganize String Analysis holy shit—— [每天刷题并不难0.0] Given a string S, check if the letters can be rearranged so that two characters that are adjacent to each other are not the same....

weixin_32135877的博客 221

LeetCode: 767 Reorganize String

题目: 767 Reorganize String (https://leetcode.com/problems/reorganize-string/) 每次取当前出现频率最高的两个字母拼接在字符串上。直到PriorityQueue中元素的数量只有一个或者没有。如果只有一个且他还有大于1的频率,就说明这个字符创无法Reorganize。 class Solution { public...

majinliang1234的博客 228

【LeetCode】767. Reorganize String 重构字符串(Medium)(JAVA)

【LeetCode】767. Reorganize String 重构字符串(Medium)(JAVA) 题目地址: https://leetcode.com/problems/reorganize-string/ 题目描述: Given a string S, check if the letters can be rearranged so that two characters that are adjacent to each other are not the same. If possible,

qq_16927853的博客 278

Leetcode 767. Reorganize String

文章作者:Tyan 博客:noahsnail.com &nbsp;|&nbsp; 优快云 &nbsp;|&nbsp; 简书 1. Description 2. Solution class Solution { public: string reorganizeString(string S) { int length = S.size(); int maximum...

SnailTyan 627

767. Reorganize String

767. Reorganize String 1. 题目 Given a string S, check if the letters can be rearranged so that two characters that are adjacent to each other are not the same. If possible, output any possible result...

凌凌小博客 341

Leetcode 767. Reorganize String(容易理解的解法)

Leetcode 767. Reorganize String 题目链接: Reorganize String 难度:Medium 题目大意: 输入一个全部由小写字母字符串,要求将字符串进行出现排列,使得任意相邻的两个字符不相等,返回排列后的任意一种情况。如果做不到则返回空。 思路: 调剂各个字符出现的次数,假设字符c出现的次数最多,记为num,字符串的长度为n,能将字符串按题目要求排列的充分必要条件是num<=(n+1)/2.如果能将字符串按题目要求排列,先将c间隔排列,再将剩余的字符间隔排列。如果

xue1236的博客 421

LeetCode //C - 767. Reorganize String

This solution addresses the problem of reorganizing a string such that no two adjacent characters are identical. The approach involves: Frequency Counting: Calculating the frequency of each character in the input string. Feasibility Check: Ensuring it's p

Made in Code 467

排序LeetCode 767 Reorganize String

LeetCode 767 Reorganize String Problem Description: 对字符串中的字符顺序进行调整,如果能够使相邻字符不相同,返回调整后的任一满足字符串,否则返回空字符串。 具体的题目信息: https://leetcode.com/problems/reorganize-string/description/ Example: Solution:...

萤火虫啊飞呀飞 249

leetcode767. Reorganize String(767. 重构字符串)

文章目录题目:767. 重构字符串基本思想:计数+贪心 题目:767. 重构字符串 Given a string S, check if the letters can be rearranged so that two characters that are adjacent to each other are not the same. If possible, output any possible result. If not possible, return the empty string.

yyf_blog 470

Leetcode——767. Reorganize String

题目原址 https://leetcode.com/problems/reorganize-string/description/ 题目描述 Given a string S, check if the letters can be rearranged so that two characters that are adjacent to each other are not the ...

想当厨子的程序媛 1409
上一篇: [Leetcode] 766. Toeplitz Matrix 解题报告
下一篇: [Leetcode] 768. Max Chunks To Make Sorted II 解题报告
魔豆Magicbean
博客等级 码龄19年 146粉丝 742原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值