535 Encode and Decode TinyURL

url 长短两个类型的转化,初一看题意并不明确,不知道是否要保留http:// 

但参考了别人的答案后发现,其实并不需要,就是相当于一个长字符串和短字符串 之间建立一一对应的关系,其实就相当于字符和index之间的对应关系,稍微扩展一下就是这道题的解法的。

用动态array,ArrayList 就可以解决问题。代码如下,这里把index当作shortUrl比用size当作shortUrl更方便,测试过速度,70% vs 30%


public class Codec {
    
    List<String> urls = new ArrayList<>();
    
    // Encodes a URL to a shortened URL.
    public String encode(String longUrl) {
        urls.add(longUrl);
        return String.valueOf(urls.size()-1);
    }

    // Decodes a shortened URL to its original URL.
    public String decode(String shortUrl) {
        int index= Integer.valueOf(shortUrl);
        return index<urls.size()?urls.get(index):"";  // 注意写法:先有return,再+判断条件,+ 肯定选项,+ : 否定选项
    }
}

// Your Codec object will be instantiated and called as such:
// Codec codec = new Codec();
// codec.decode(codec.encode(url));


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值