LeetCode-535. Encode and Decode TinyURL

本文介绍了一种URL缩短服务的设计方案,通过将长链接转换为短链接,如将https://leetcode.com/problems/design-tinyurl转化为http://tinyurl.com/4e9iAk。文中提供了一种具体的C++实现方法,并探讨了其编码和解码过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description

TinyURL is a URL shortening service where you enter a URL such as https://leetcode.com/problems/design-tinyurl and it returns a short URL such as http://tinyurl.com/4e9iAk.

Design the encode and decode methods for the TinyURL service. There is no restriction on how your encode/decode algorithm should work. You just need to ensure that a URL can be encoded to a tiny URL and the tiny URL can be decoded to the original URL.

Solution 1(C++)

class Solution {
private:
    string charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    unordered_map<char, string> map;
public:
    // Encodes a URL to a shortened URL.
    string encode(string longUrl) {
        char key = charset[rand() % charset.length()];
        string encoded = "http://tinyurl.com/";
        encoded += key;
        map[key] = longUrl;
        return encoded;
    }

    // Decodes a shortened URL to its original URL.
    string decode(string shortUrl) {
        //find key
        char key = shortUrl[shortUrl.length()-1];
        return map[key];
    }
};

算法分析

略。

程序分析

这道题的背景还是很有意思的。可以参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值