打乱字符串,使相邻的两个字母都不相同

2024-03-28

我一直在尝试解决这个面试问题,该问题要求对字符串进行洗牌,以便没有两个相邻的字母是相同的 例如,

ABCC -> ACBC

我想到的方法是

1)迭代输入字符串并存储(字母,频率) 配对some收藏

2)现在通过拉出我们刚才没有拉出的最高频率(即> 0)字母来构建结果字符串

3)每当我们提取字母时更新(减少)频率

4)如果所有字母的频率为零,则返回结果字符串

5) 如果只剩下一个频率大于 1 的字母,则返回错误

通过这种方法,我们可以将更珍贵(不太频繁)的信件留到最后。但为了实现这一点,我们需要一个集合,它可以让我们有效地查询键,同时有效地按值对其进行排序。就像是this https://stackoverflow.com/questions/289/how-do-you-sort-a-dictionary-by-value可行,除非我们需要在每次字母检索后对集合进行排序。

我假设是 Unicode 字符。

关于使用什么集合有什么想法吗?或者另一种方法?


您可以按频率对字母进行排序,将排序后的列表分成两半,然后依次从两半中取出字母来构建输出。这需要一次排序。

例子:

  • 初始字符串:ACABBACAB
  • Sort: AAAABBBCC
  • Split: AAAA+BBBCC
  • 结合:ABABABCAC

如果出现频率最高的字母数量超过字符串长度的一半,则该问题无解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打乱字符串,使相邻的两个字母都不相同 的相关文章

  • 使用 OpenFileDialog 选择文件和文件夹

    我做了很多研究来找到这个问题的合适答案 但我失败了 我可以在这里和其他论坛上看到多个问题 但没有明确的答案带来明确的解决方案 我希望 OpenFileDialog 为我选择一个 多个文件 并允许我也选择文件夹 例如 A 多个文件或多个文件夹
  • 对“组件”类型的引用声明它是在“系统”中定义的

    尝试在 UWP 应用程序中获取一些 WMI 对象 在 net 4 6 上运行 VS2015 我收到 ForEach 和方法调用错误 指出 引用类型 组件 声明它是在 系统 中定义的 错误为 CS7069 using System using
  • 不均匀圆盘的最佳覆盖

    What kind of algorithm can I use to search for an optimal minimum area covering of a limited region of the XY plane with
  • 专门化 STL 算法,以便它们在可用时自动调用高效的容器成员函数

    STL 具有全局算法 可以在任意容器上运行 只要它们支持该算法的基本要求 例如 某些算法可能要求容器具有随机访问迭代器 例如向量而不是列表 当容器具有比通用算法更快的执行方式时 它会提供具有相同名称的成员函数来实现相同的目标 就像提供自己的
  • 在 C# 中读取并发送 mp4 文件

    我使用以下代码从服务器读取 mp4 文件并通过 http 发送它 我的服务器端是 mvc4 控制器 有趣的是 视频在 Chrome 中渲染得很好 但在 ios 设备上没有得到任何东西 所以我认为这可能是响应流标头问题 我缺少什么吗 var
  • gcc 无效版本(最大)错误添加符号:错误值

    我已经在 Linux x86 x64 上成功构建了几个 32 位静态和共享库 现在我尝试将它们链接到一个可执行文件 但出现以下错误 usr bin ld foo so moddi3 invalid version 21 max 0 foo
  • .net 日历 - 使整个单元执行回发(可点击)

    我已经启动并运行了一个 net 日历 并从数据库中获取信息 默认情况下 天数会应用回发操作 我想做的是将该操作应用于整个单元格 这样用户就不需要仅单击文本链接 我是 dayRenderer 操作 我有以下行来尝试复制该操作 但第二个参数我不
  • Arduino C++ 析构函数?

    我知道在Arduino中你不能使用delete 那么什么时候调用 C 类中定义的析构函数呢 同样 如果我想创建一个指向数组的指针 我必须使用malloc and free 当对象被销毁时 析构函数被调用 对于自动 堆栈上 变量 它在离开其作
  • ASP.NET MVC:如何在返回状态代码 404 的同时提供内容? [复制]

    这个问题在这里已经有答案了 可能的重复 如何配置 IIS 以使用自定义内容提供 404 响应 https stackoverflow com questions 2551959 how to configure iis to serve m
  • Azure 函数 - 如何读取表单数据

    如何阅读表单数据 in Azure 函数 我尝试了多种方法 但总是出现错误 例如 using System Net public static async Task
  • 有丰富的领域模型示例吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个简单的示例来说明使用富域模型的好处 理想情况下 我想要一个之前和之后的代码列表 应该尽可能
  • L"" 和 u8"" 之间的区别

    以下有什么区别吗 auto s1 L 你好 auto s2 u8 你好 Are s1 and s2指的是同一类型 如果不是 有什么区别以及首选哪一个 它们不是同一类型 s2是 UTF 8 或窄字符串文字 这C 11标准草案 http www
  • Mono 的 DNS 刷新超时

    虽然目前Mono项目的ServicePointManager类有DnsRefreshTimeout属性启用到其接口中 相关属性未实现 调用示例 ServicePointManager DnsRefreshTimeout 10 60 1000
  • 为什么指向 int 的指针会转换为 void* 而指向函数的指针会转换为 bool?

    C 标准草案 N3337 对指针转换有以下规定 4 10 指针转换 2 指向的指针 类型的右值cv T 在哪里T是一个对象类型 可以转换为 指向的指针 类型的右值cv void 将 指针转换为cv T 到 指向cv void 指向类型对象的
  • Python 比 C++ 更快、更轻吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 什么是排列索引?

    我正在阅读 加速 C 我不明白练习 5 1 设计并实现一个程序 根据以下输入生成排列索引 排列索引是其中每个短语由短语中的每个单词索引的索引 The quick brown fox jumped over the fence The qui
  • 尝试返回 IQueryable 时发生转换错误

    我有一个查询应该返回IQueryable
  • 如何解析 XML diff 以仅显示差异

    我使用以下方法比较两个序列化对象的 xmlMS XmlDiffPatch 工具 http msdn microsoft com en us library aa302294 aspx C XML 示例 1
  • qt 读取就绪信号

    我正在尝试与运行 1996 年处理器的设备建立串行连接 这意味着数据传输回我可能需要几秒钟的时间 我知道readyRead每次有新数据可用时都会生成信号 但我的问题是生成多长时间 这也是我可以测试就绪读取是否较低的一种方法 因为如果当它们不
  • Java 压缩字符串

    我需要创建一个接收字符串并返回字符串的方法 防爆输入 AAABBBCCC 防爆输出 3A4B2C 好吧 这很尴尬 我在今天的面试中无法做到这一点 我正在申请初级职位 现在 我在家尝试制作一些静态工作的东西 我的意思是 不使用循环有点无用 但

随机推荐

  • 随着利润增加,如何在止损和当前价格之间保持 10 点的利润差距

    我试图在解决方案中添加另一个条件 当交易盈利 10 点时 我希望止损移动 10 点 更具体地说 假设我设置了一个挂单买单 止损是低于开盘价 10 点 止盈是 50 点 如果交易盈利 10 点 则止损将向上移动 10 点 如果交易盈利 20
  • 有没有更好的写法 ||在单个 if 语句中[重复]

    这个问题在这里已经有答案了 想知道是否有更好的方法来编写下面的代码 我希望我的 if 语句忽略所有键码 但这样写似乎很混乱 如下所示 thanks if event keyCode 9 event keyCode 91 event keyC
  • 为什么 ((object)(int)1).Equals(((object)(ushort)1)) 产生 false?

    我有这样的情况object我想检查与另一个是否相等object public static bool Equals object a object b return a Equals b 当出现问题时a 1 integer and b 1
  • 为什么 Java 中的每个对象都隐式扩展 java.lang.Object 类?

    我已经用 Java 编程有一段时间了 但是当我试图解释什么是 Java 时 java lang Object是给朋友上课的 我除了简单的一句台词之外想不出更多的话 Java中的所有对象都扩展java lang Object隐含地 我不太确定
  • 以编程方式创建具有特定样式的 ImageView

    我想以编程方式执行此操作
  • IOS 5:UIScrollView 不将触摸传递给 nextResponder

    我有一个子类UIScrollView 并覆盖其所有 4 Touches 功能 在那些 Touches 函数中 self nextResponder Touches and super Touches 用于传递触摸事件 我还有一个视图控制器
  • Apache POI 设置 Excel 图表标题

    我正在从头开始创建 Excel 工作簿 其中一张工作表包含一个图表 我想设置图表标题 Apache POI 在 HSSFChart 上有一个 setChartTitle 方法 但 XSSFChart 和与格式无关的 Chart 都没有设置图
  • 如何验证 WebClient 请求?

    我正在使用网络客户端调用我网站上的页面 我正在尝试将网页的结果放入 pdf 中 因此我正在尝试获取呈现页面的字符串表示形式 问题是请求没有经过身份验证 所以我得到的只是一个登录屏幕 我已将 UseDefaultCredentials 属性设
  • 如何向 django 项目添加环境变量

    我正在尝试设置我的项目 以便它可以在本地使用环境变量 我尝试将其添加到我的激活文件和其他内容列表的末尾 我正在尝试使用这个 from base import if os environ DJANGO SERVER TYPE local tr
  • 在事务内部或外部打开和关闭游标以及事务失败时如何关闭游标

    我正在 SQL Server 2012 中编写一个存储过程 它使用游标进行读取 并在TRY CATCH堵塞 基本上 我的问题如下 我应该在里面声明我的光标吗TRY CATCH堵塞 如果是 我应该在之前还是之后声明光标BEGIN TRANSA
  • 将 Font Awesome 图标做成一个圆圈?

    我在某些项目中使用 font Awesome 但我想用 font Awesome 图标做一些事情 我可以轻松地调用这样的图标 i class fa fa lock i 是否有可能所有图标始终处于带边框的圆圈中 类似这样的 我有一张图片 Us
  • 使用一组迭代步骤迭代基于列表的列表

    我想根据存储在另一个列表中的可变数量的迭代和存储为整数的恒定数量的跳过来迭代给定的列表 假设我有三件事 l 我需要迭代 或过滤 的列表 w 一个列表 告诉我在休息之前要迭代多少项 k 一个整数 告诉我在每组迭代之间要跳过多少个元素 换句话说
  • Android 上原生的自修改代码

    我正在尝试在 Android 上制作一些自修改本机代码并在模拟器中运行它 我的示例基于 android ndk 中的 Hello JNI 示例 它看起来像这样 define NOPE LENGTH 4 typedef void FUNC v
  • 如何处理返回结构的不可变性?

    我正在编写一个具有巨大的二维 单元 数组的游戏 一个单元仅占用 3 个字节 我还有一个名为 CellMap 的类 其中包含作为私有字段的 2D 数组 并提供通过公共索引器对其进行访问 分析表明 性能问题是由过多 Cell 对象的垃圾回收引起
  • apache 和 httpd 正在运行,但我看不到我的网站 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我已经在我的服务器上安装了 apache 但是我无法通过我的服务器 IP 浏览我的网站 apache 的设置是 var www htdocs 下的单帐
  • TeamFoundation.VersionControl.HatPackage 加载失败

    在源代码管理下加载项目时 我在 VS2013 中收到此错误 包 Microsoft VisualStudio TeamFoundation VersionControl HatPackage Microsoft VisualStudio T
  • 使用 itextsharp 将 HTML 转换为 PDF

    当使用将 html 转换为 pdf 时itextsharp使用 css 为网页应用的 iam 样式在转换后的 pdf 中不起作用 这是我的CSS代码
  • GraphQL 如何执行 JOIN 请求而不是许多顺序请求?

    我有两种 GraphQL 类型 type Author id String name String type Book id String author Author name String 在我的数据库中 它是通过 books 表内的外键
  • java 中覆盖 static 的替代方案

    我想知道 将属性适合作为大型继承结构一部分的类的最佳方法是什么 我想创建一个抽象静态方法 每个类都会覆盖该方法 但经过快速谷歌搜索后似乎不起作用 有什么建议么 我可以将其设为实例方法 但它实际上是类级别规范 提前致谢 我建议你创建一个抽象方
  • 打乱字符串,使相邻的两个字母都不相同

    我一直在尝试解决这个面试问题 该问题要求对字符串进行洗牌 以便没有两个相邻的字母是相同的 例如 ABCC gt ACBC 我想到的方法是 1 迭代输入字符串并存储 字母 频率 配对some收藏 2 现在通过拉出我们刚才没有拉出的最高频率 即