You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

设计Twitter问题在Leetcode上我的错误在哪里?

设计Twitter问题在Leetcode上是一道经典的面试题。它的难度级别为中等(Medium),需要实现一个简单的社交媒体平台,具备发布推文、关注和查看推文等功能。

以下是完整的实现代码,假设你已经实现了以下三个类:User、Tweet和Twitter:

class User:
    def __init__(self, user_id):
        self.user_id = user_id
        self.followed = set()
        self.tweets = []

    def follow(self, user_id):
        self.followed.add(user_id)

    def unfollow(self, user_id):
        if user_id in self.followed:
            self.followed.remove(user_id)

    def post(self, tweet_id):
        self.tweets.append(tweet_id)

class Tweet:
    def __init__(self, tweet_id, user_id):
        self.tweet_id = tweet_id
        self.user_id = user_id
        self.timestamp = time.time()

class Twitter:
    def __init__(self):
        self.users = {}

    def postTweet(self, user_id, tweet_id):
        if user_id not in self.users:
            self.users[user_id] = User(user_id)
        self.users[user_id].post(tweet_id)

    def getNewsFeed(self, user_id):
        if user_id not in self.users:
            return []
        tweets = []
        for tweet in self.users[user_id].tweets:
            tweets.append(tweet)
        for followed in self.users[user_id].followed:
            if followed in self.users:
                for tweet in self.users[followed].tweets:
                    tweets.append(tweet)
        tweets = sorted(tweets, key=lambda x: x.timestamp, reverse=True)
        return [tweet.tweet_id for tweet in tweets[:10]]

    def follow(self, follower_id, followee_id):
        if follower_id not in self.users:
            self.users[follower_id] = User(follower_id)
        self.users[follower_id].follow(followee_id)

    def unfollow(self, follower_id, followee_id):
        if follower_id not in self.users:
            return
        self.users[follower_id].unfollow
本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

Bundler 的设计取舍:为什么要开发 Rspack?

Oncall 和 Issue 的区别在于,我们需要快速的解决业务侧的问题(大部分问题都在 24hr 内解决,绝大多数问题在 1 周内解决),这一方面要求团队的方案能够保持在比较高速的迭代,另一方面要求我们可以以比较低成本的方式... 这期间也暴露了很多问题。Rollup 的优点非常明显,产物格式极为干净,产物结果对 TreeShaking 非常友好,但是同时其缺点也很明显* CommonJS 的支持: 虽然现在社区(Twitter)的趋势是推崇 ESM,但是在公司的实际项...

sonic:基于 JIT 技术的开源全场景高性能 JSON 库

sonic 是字节跳动开源的一款 Golang JSON 库,基于即时编译(Just-In-Time Compilation)与向量化编程(Single Instruction Multiple Data)技术,大幅提升了 Go 程序的 JSON 编解码性能。同时结合 lazy-load 设计思想,它... 大([large](https://github.com/bytedance/sonic/blob/main/testdata/twitterescaped.json)):550KB,10000+ key,深度 6 层。测试结果如下:![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfc...

人生大事「我的 2022 技术总结与盘点」|社区征文

我曾经是一个开发团队的小Leader,随着2020年海外社交的风生水起,公司的规模不断地壮大,临危受命接替了原来Leader的位置进入到了半管理的状态,然而3年的疫情,app审核问题,让整个部门一蹶不振,经过2个月的苟延残喘,最... [LeetCode.415-字符串相加(Swift)](https://juejin.cn/post/7129849577661792263)[LeetCode.206-转链表(Swift](https://juejin.cn/post/7131394961878024222)[LeetCode.3-无重复字符的最长子串(Swift)](https:...

我的2021云原生之路 |社区征文

## 目标2021年年初做整年规划的时候,我把简历 title 改成了`云原生开发工程师`。2021年的主要目标就是补齐云原生技术栈。当时定的目标主要有1. 写一个 k8s Operator2. 学习k8s的网络和存储3. 给 CNCF 项目提交PR当然作为一个工程师需要有自己的主力语言,所以加了下面4. Golang 语言的精进5. leetcode 刷100题6. 构建社区影响力## 实现### 刷题- 从 *2021.1* 到 *2021.5* 坚持了4个月刷了每日一题,拿到了一件le...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

设计Twitter问题在Leetcode上我的错误在哪里? -优选内容

Bundler 的设计取舍:为什么要开发 Rspack?
Oncall 和 Issue 的区别在于,我们需要快速的解决业务侧的问题(大部分问题都在 24hr 内解决,绝大多数问题在 1 周内解决),这一方面要求团队的方案能够保持在比较高速的迭代,另一方面要求我们可以以比较低成本的方式... 这期间也暴露了很多问题。Rollup 的优点非常明显,产物格式极为干净,产物结果对 TreeShaking 非常友好,但是同时其缺点也很明显* CommonJS 的支持: 虽然现在社区(Twitter)的趋势是推崇 ESM,但是在公司的实际项...
sonic:基于 JIT 技术的开源全场景高性能 JSON 库
sonic 是字节跳动开源的一款 Golang JSON 库,基于即时编译(Just-In-Time Compilation)与向量化编程(Single Instruction Multiple Data)技术,大幅提升了 Go 程序的 JSON 编解码性能。同时结合 lazy-load 设计思想,它... 大([large](https://github.com/bytedance/sonic/blob/main/testdata/twitterescaped.json)):550KB,10000+ key,深度 6 层。测试结果如下:![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfc...
人生大事「我的 2022 技术总结与盘点」|社区征文
我曾经是一个开发团队的小Leader,随着2020年海外社交的风生水起,公司的规模不断地壮大,临危受命接替了原来Leader的位置进入到了半管理的状态,然而3年的疫情,app审核问题,让整个部门一蹶不振,经过2个月的苟延残喘,最... [LeetCode.415-字符串相加(Swift)](https://juejin.cn/post/7129849577661792263)[LeetCode.206-转链表(Swift](https://juejin.cn/post/7131394961878024222)[LeetCode.3-无重复字符的最长子串(Swift)](https:...
我的2021云原生之路 |社区征文
## 目标2021年年初做整年规划的时候,我把简历 title 改成了`云原生开发工程师`。2021年的主要目标就是补齐云原生技术栈。当时定的目标主要有1. 写一个 k8s Operator2. 学习k8s的网络和存储3. 给 CNCF 项目提交PR当然作为一个工程师需要有自己的主力语言,所以加了下面4. Golang 语言的精进5. leetcode 刷100题6. 构建社区影响力## 实现### 刷题- 从 *2021.1* 到 *2021.5* 坚持了4个月刷了每日一题,拿到了一件le...

设计Twitter问题在Leetcode上我的错误在哪里? -相关内容

华为OD过了 D1-D3捞人

参考资料: 可看一下leetcode网的典型练习题目,编号如下: 字符串:3,49,30 线性表:86,16,27,732 队列:641,406,899 栈:946,116,117,895 哈希表:61,729,25,554 dfs:105,112,98,494,547,1254 bfs:1091,1129,102,101,752... 但跳出访问浏览器搜索考试相关内容则会在成绩报告中标识为作弊嫌疑,成绩将取消;考试需要打开开启摄像头,否则成绩无效; (3)考试期间如遇到断电、断网、死机等问题,可以关闭浏览器重新打开试卷链接即可继续做题,如重...

开源社区贡献者2023年总结 |社区征文

灵活地应对突发情况并创造性地解决问题(马),以及直接推动业务前进(车)。甚至是要有战略性思维,如果是作为企业的战略领导者,类似于象棋中的国王。具备全局视角,设定公司的长远目标和战略方向。虽然国王在棋盘上的移... 我们每个人对于*成功*的定义是各不相同的!在简易的成功学中,成功的定义是: ****天赋,努力和运气*** *。用我们平常 code 思维理解,三者中或只有 努力 是可以读写操作的,而天赋和运气都是可读的,但并不能写操作。所...

华为OD过了!经验贴分享一下

参考资料: 可看一下leetcode网的典型练习题目,编号如下: 字符串:3,49,30 线性表:86,16,27,732 队列:641,406,899 栈:946,116,117,895 哈希表:61,729,25,554 dfs:105,112,98,494,547,1254 bfs:1091,1129,102,101,752... 但跳出访问浏览器搜索考试相关内容则会在成绩报告中标识为作弊嫌疑,成绩将取消;考试需要打开开启摄像头,否则成绩无效; (3)考试期间如遇到断电、断网、死机等问题,可以关闭浏览器重新打开试卷链接即可继续做题,如重...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

2023 总结与 2024 展望|社区征文

持续了近 *20* 年的 **Google Code Jam** 连同 **Google Kick Start** 一起被 *Google* 停办,也意味着今后再也不能通过这项比赛拿到 *Google* 的 *T恤*;去年 **LeetCode** 周赛的最佳成绩是 **94**,基本上能够稳定... 问题还是输入不够,没有啥好的选材。开源项目还是只停留在观望阶段,快到年底的时候才找到一个自己比较感兴趣的项目,希望在明年能够在这个项目上多多产出。今年看了 **15** 本书,包括《重构-改善既有代码的设计》、《...

Go应用接入

您可以通过链路追踪来排查问题环节,获取服务拓扑等信息,tracer初始化示例代码: Go package mainimport ( "github.com/volcengine/apminsight-server-sdk-go/trace/aitracer")func main() { InitTrace... func yourCode(){ metrics.EmitCounter("request.throughput",1) //计数 metrics.EmitTimer("request.duration",1) //延时 metrics.EmitGauge("goroutine.num", 1) //值}接入后可在自...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询