1
31
好吧,您可以轻松地生成
创建
相反的
请注意,创建一个反转的
样本代码,大部分未测试:
|
2
10
这是不可能的。要反转字符串,必须至少处理每个字符一次,因此,它必须至少是
|
3
5
根据您在O(1)下理解的内容,似乎不可能,因为即使是读取字符串也需要O(n),其中n是字符串中的字符数。 |
4
3
StringBuffer具有反转: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/StringBuffer.html#reverse() 顺便说一句,我认为你的意思是O(n),因为O(1)(如其他人所说)显然是不可能的。 |
5
1
其他人是怎么写的,在O(1)时间里是不可能的,因为你至少要看一次每个字符。 但是,如果你想在O(1)空间中完成它,这里是:如果你想在O(1)空间中完成它,显然你不能分配一个相同长度的新字符串,但是你必须在适当的位置交换字符。
所以您所要做的就是从字符串的左到中迭代,同时从右到中迭代,交换元素。伪代码(约定:let string
你看,你只需要一个辅助变量
|
6
0
乔恩·斯基特的解决方案可能是最有效的。但如果你只是想要一个快速和肮脏的,这应该做到,我不认为它会远远落后于性能。
StringBuffer是一个CharSequence,所以如果您暗示结果必须是一个CharSequence,这就是。 如果您多次检查序列,这可能比skeet先生的解决方案更快,因为它消除了每次读取字符时查找正确字符位置的计算开销。每个角色只做一次。 如果我要做十亿个,也许我会做一个基准。 |
7
0
最好使用StringBuilder来反转,这是StringBuffer的非同步版本。 |
8
0
|
9
0
这里我有一个使用substring方法和o(n)的相同示例。我知道使用子字符串可以保存完整的字符串内存。
这可能对你有帮助。如果我错了告诉我!! |
10
0
//努力解决这个问题
|