0

假设我们有一个表单中的输入字符串I have/had alot/none/zero money

我想要一组如下的输出字符串(示例 1):

I have alot money

I have none money

I have zero money

I had alot money

I had none money

I had zero money

但是,这里的真正任务是能够选择一个或多个,或者没有输入子字符串来忽略。因此,输出字符串将如下所示:

I money

或者

first example

或者

I alot money

I none money

I zero money

或者

I

或者

money

我希望你明白了。我怎样才能做到这一点,对 CPU 周期最友好?

好的,为了打破僵局,这是我不愿意做的,但考虑到更聪明的想法:

  1. 生成所有输出字符串(提到,示例 1)。
  2. 遍历字符串,我过滤掉符合我的条件的字符串,用“”替换不需要的子字符串。
  3. 仅当结果字符串尚不存在时,才将结果字符串放入最终输出数组中。

此外,我为什么要关心 cpu 周期的答案很简单:这个任务花费的时间越长,它阻塞工作线程的时间就越长。

4

1 回答 1

0

这个最简单的方法是找到所有的空格和 / 字符并将单个单词放入一个两级列表中,然后你会得到这样的结构:

  • 有过
  • 很多,没有,零
  • .

现在您只需遍历树并生成结果字符串。

要将其推到过大的程度,您还可以编写一个令牌解析器而不是执行 strchr。

我怎样才能做到这一点,对 CPU 周期最友好?

你为什么在乎?

于 2014-02-15T19:10:17.423 回答