微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据另一个字符串在字典上最小的字符串

如何解决根据另一个字符串在字典上最小的字符串

仅基于> and <的输入字符串来生成字典上满足条件的最小字符串的算法是什么?

例如

if input is "<<" then answer is "abc" // explanation "a<b<c"--> "a" is less than "b" and so does "c"
if input is "<>" then answer is "aba" // explanation "a<b>a"
if input is "<>><<" then answer is "acbabc" // explanation "a<c>b>a<b<c"

这个问题在一次编码采访中被问到。 约束:输入字符串的长度为2

任何解决此问题的提示也都可以。

谢谢。

解决方法

我可以想到一种贪婪的方法(未经测试)。

对于每一个<,我们只需要关心右边连续有多少> (这里+1是当前字符与<的先前字符的关系。

我们还初始化了一个current_char = a变量。

让我们以<>><<为例。计数如下所示:

 <  >  >  <  <
 3        1  1

我们现在从数组的左移到右移,并根据current_char + count值分配值。现在,假设a + 3 = c也考虑当前字符。

对于连续的>位,我们只需将current_char减少1。

  <  >  >  <  <
  3        1  1
a c  b  a  b  c

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。