当前位置: 首页 > ds >正文

时间复杂度与空间复杂度分析

我们先来看看时间复杂度的分析:

时间复杂度:O(n2),其中 n 是字符串 sentence 的长度。虽然我们对字符串只进行了常数次遍历,但是返回的字符串长度的数量级是 O(n2) 的。考虑最坏的情况,字符串 sentence 包含 75 个单词 a,此时返回的字符串的长度为:

这四部分分别为:单词 a 的长度,添加的 m 的长度,添加的 a 的长度,空格的长度。 

再来看看空间复杂度的分析:

空间复杂度:O(n2) 或 O(n),取决于使用的语言的字符串是否可修改。如果可以修改,我们只需要 O(n) 的空间临时存储字符串切片;如果不可以修改,我们需要 O(n2) 的空间临时存储所有单词修改后的结果。注意这里不计入返回字符串使用的空间。 

Golang

var vowels = map[byte]struct{}{'a': {}, 'e': {}, 'i': {}, 'o': {}, 'u': {}, 'A': {}, 'E': {}, 'I': {}, 'O': {}, 'U': {}}func toGoatLatin(sentence string) string {ans := &strings.Builder{}for i, cnt, n := 0, 1, len(sentence); i < n; i++ {if cnt > 1 {ans.WriteByte(' ')}start := ifor i++; i < n && sentence[i] != ' '; i++ {}cnt++if _, ok := vowels[sentence[start]]; ok {ans.WriteString(sentence[start:i])} else {ans.WriteString(sentence[start+1 : i])ans.WriteByte(sentence[start])}ans.WriteByte('m')ans.WriteString(strings.Repeat("a", cnt))}return ans.String()
}

好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!

 

http://www.xdnf.cn/news/12163.html

相关文章:

  • 一站式直播工具:助力内容创作者高效开启直播新时代
  • 基于cnn的通用图像分类项目
  • django之请求处理过程分析
  • 应用层协议:HTTP
  • 网页前端开发(基础进阶3--Vue)
  • PostgreSQL(PostGIS)触发器+坐标转换案例
  • 网络爬虫一课一得
  • OD 算法题 B卷【DNA序列】
  • 解决:如何在Windows adb使用dmesg | grep检查内核日志
  • 关于udp——mqtt运行注意事项
  • CSP is what?
  • SVM超详细原理总结
  • C语言数组初始化方法大全(附带实例)
  • 服务器--宝塔命令
  • 83.部署解析文件模型
  • 多模态大语言模型arxiv论文略读(106)
  • AlexNet,VGG,Inceptions, ResNet, MobileNet对比
  • Mysql的B-树和B+树的区别总结
  • 【知识点】第6章:组合数据类型
  • 【DVWA系列】——Brute Force(暴力破解)——low
  • 面试题:N叉数的最大深度
  • 软件功能鉴定需要注意哪些内容?
  • NLP学习路线图(二十四):门控循环单元(GRU)
  • 深度学习之路——CNN卷积神经网络详解
  • Python 运算符详解
  • 【Markdown 中定义函数和变量】
  • 创新驱动产业升级,国际数字影像产业园绘就文创发展新蓝图
  • Python多线程编程:从GIL锁到实战优化
  • 【openssl】升级为3.3.1,避免安全漏洞
  • 大模型高效提示词Prompt编写指南