【问题标题】:How do you check if the characters in a string are grouped together?如何检查字符串中的字符是否组合在一起?
【发布时间】:2019-04-17 00:10:27
【问题描述】:

我希望能够检查字符串中的字符是否组合在一起。

被分组的定义:在其集群之外的其他地方不重复。在“AABBBBACDDD”中,它没有被分组,因为最后一个“A”不在其集群中(第一组 A)。

字符不必按字母顺序排列。

例如:

AAABBBBBCCC → 已分组

AABBBBACDDD没有分组


肯定有一个循环,但我不知道检查它是否是组的条件

【问题讨论】:

  • 如何定义它们是否被分组?
  • 我认为这个定义是“除了它的集群之外,不会在其他地方重复”。在“AABBBBACDDD”中,它没有被分组,因为最后一个“A”不在其集群中(第一组 A)
  • @GBlodgett 是的 cmertayak 说了什么

标签: c++ string algorithm loops character


【解决方案1】:

这听起来更像是一个算法问题,而不是 C++。所以算法将是这样的,(伪代码)。您可以为此编写 C++ 代码(如果您愿意,我可以帮助您):

function is_grouped(str):
  seen_letters = {} # set of seen letters so far
  last_letter = None
  for c in str:
    if last_letter == c:  # if it is the same letter as before continue
      continue
    if last_letter != c && c in seen_letters:  # seen before and a new cluster
      return false
    seen_letters.add(c) # new unsee cluster
    last_letter = c
  return true

【讨论】:

    猜你喜欢
    • 2019-05-19
    • 2017-10-30
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    相关资源
    最近更新 更多