假设我们使用以下规则从另一个字符串中拉出一个字符串,该字符串仅包含ASCII可打印字符,并称为*
-string。如果在进程停止之前字符串用完,则表示错误,并且在这种情况下,进程的结果是不确定的:
- 从...开始
d=1, s=""
- 每当遇到a时
*
,乘以d
2。每当遇到另一个字符时,将其连接到的末尾s
并从中减去1d
。如果现在d=0
停止并返回s
定义的例子:
d->d
769->7
abcd56->a
*abcd56->ab
**abcd56->abcd
*7*690->769
***abcdefghij->abcdefgh
未定义的示例:(请注意,空字符串也将是其中之一)
*7
**769
*7*
*a*b
*
您的工作是获取一个字符串并返回*
产生该字符串的最短-string。
程式范例:
7->7
a->a
ab->*ab
abcd->**abcd
769->*7*69
您的程序应处理任何至少包含一个字符且仅包含非*
ASCII可打印字符的字符串。您永远不能返回未定义过程的字符串,因为根据定义,它们不能产生任何字符串。
适用标准漏洞和I / O规则。
*
吗?