栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在O(1)中反转Java中的字符串?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在O(1)中反转Java中的字符串?

好的,您可以轻松地生成一个实现,

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();    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/464001.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号