【发布时间】:2018-04-10 02:12:50
【问题描述】:
例如,用户可以提交$a、$b 和$c。我需要从这些输入中创建一个唯一的字符串。
如果我使用$uniq = $a$b$c,输入$a=AB, $b=CD, $c=EF 和$a=A, $b=BCD, $c=EF 都会生成$uniq=ABCDEF。
如果我使用$uniq = $a|$b|$c,那么$a=AB, $B=CD, $c=EF| 和$a=AB|CD, $b=EF, $c="" 都会生成$uniq=AB|CD|EF|
我该怎么做?
【问题讨论】:
-
简单的解决方案:使用用户无法或不允许输入的分隔符 - 也许是控制字符。更复杂:为每个输入添加自己的长度(作为单个二进制字节,或十进制数字后跟冒号等)。
-
正如@jasonharper 所说,但您不需要选择单个字符分隔符。任何不允许用户输入的字符串都可以使用。
-
这是一个众所周知的问题。考虑 C 字符串,您必须在其中“转义”
'\'字符。所以如果你想打印字符串"\hello\",你写puts("\\hello\\");同样,你可以用|字符分隔用户的输入,如果用户输入一个|,你将它转换为||。当然,如果你输出了唯一的字符串,你会想要进行反向转换。
标签: algorithm unique uniqueidentifier unique-key