好的,您可以轻松地生成一个实现,
CharSequence该实现返回相同的长度,当要求输入特定字符时,返回
length-index-1。
toString()变成O(n)当然…
创建
相反的对象
CharSequence将是O(1)-毕竟要做的就是存储对原始的引用
CharSequence。显然,对序列中的所有字符进行迭代将是O(n)。
请注意,创建反向
CharSequence(根据问题的正文)与创建反向(根据问题的 标题 ) 并不
相同。实际生成String是O(n),并且必须是。
String__
示例代码,大多数未经测试:
public final class ReverseCharSequence implements CharSequence{ private final CharSequence original; public ReverseCharSequence(CharSequence original) { this.original = original; } public int length() { return original.length(); } public char charAt(int index) { return original.charAt(original.length() - index - 1); } public CharSequence subSequence(int start, int end) { int originalEnd = original.length() - start; int originalStart = original.length() - end; return new ReverseCharSequence( original.subSequence(originalStart, originalEnd)); } public String toString() { return new StringBuilder(this).toString(); }}


