是否有任何算法/技术可以在单次通过中完成单词的字符串反转,时间复杂度为 O(n),空间复杂度为 O(1)。
最佳答案
不,这是不可能一次性完成的,除非您已经知道每个单词的长度或被允许使用某种缓冲区。
试一试:
HELLO SAM
^
becomes
SAM HELLO
^
如果您只知道 E
(因为这是您的第一次/唯一一次通过,并且不允许您存储任何数据),您不可能知道它需要交换到空格字符当前所在的位置。一旦您到达该空间并找到 E
所属的位置,再次检索 E
为时已晚。
关于单次通过单词反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20648333/