在标准的Java库中,有没有什么工具可以在给定CharSequence的情况下,在O(1)时间内产生相反的结果?
我想这很容易实现,只是想知道它是否已经存在。(我怀疑没有提供这个的原因是因为“简单”的方法实际上会破坏多字符代码点-但在许多情况下,我们知道我们不是在处理这些代码点)。
谢谢
更新嘿,这是有点有趣的是,大多数人认为这是“不可能的”,干得好!实际上,它(在概念上)是微不足道的--下面是伪make来说明这一点:
class MyReverseString extends String { //of course I can't extend String!
final String delegate;
MyReverseString(String delegate) { this.delegate = delegate; }
int length() { return delegate.length(); }
int charAt(int i) { return delegate.charAt(delegate.length() - 1 - i); }
}
我将这个问题留到更多的时间,只是在极少数情况下,JDK中已经存在类似明显的解决方案(例如,参见Jon Skeet的解决方案),并且有人知道它。(同样,由于这些令人讨厌的代码点,可能性极低)。
编辑可能是因为我的标题中有"string“(而不是String!),而我只要求”CharSequence的反向“。如果你感到困惑,很抱歉。我原本希望O(1)部分能够清楚地说明所要求的是什么。
顺便说一下,this was the question that made me ask this one。(在这种情况下,从右到左运行正则表达式会更容易,而不是从左到右,因此即使对于简单/损坏的代码点实现,也可能有一些实用价值)
https://stackoverflow.com/questions/3109914
复制相似问题