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

代码随想录算法训练营第九天 |151.翻转字符串里的单词、 LCR 182. 动态口令、28. 实现 strStr()、459.重复的子字符串

151.翻转字符串里的单词

思路:前去头空格,再去尾空格,然后依次取出所有的单词,然后用一个字符串接受,然后从放入的数组,倒置输出。难在去空格细节,我是内置for来进行去空格的

func reverseWords(s string) string {runes := []rune(s)hash := make([]string,0)//去空格//去掉首尾for runes[0] == ' ' || runes[len(runes)-1] == ' '{if runes[0] == ' '{runes = runes[1:len(runes)]}if runes[len(runes)-1] == ' '{runes = runes[0:len(runes) - 1]}}runes = append(runes,' ')record := 0for i,i2 := range runes{if i2 == ' ' && i > record{hash = append(hash,string(runes[record:i]))record = ifor runes[record] == ' ' && record < len(runes) - 1{record++}}}res := ""for i := len(hash)-1;i >=0 ; i--{res += hash[i]res += " "}return res[0:len(res) - 1]
}

  

LCR 182. 动态口令

思路:LLM找的类似题,很简单就从头部取那个要放在后面的字符,然后加上去,最后在原串返回的时候截断前面几个就行

func dynamicPassword(password string, target int) string {newstr := password[0:target]password =  password + newstrreturn password[target:]
}

  

28.实现 strStr()

思路:就是找子串,然后我们对比这个子串在不在母串里面,在的话就返回

func strStr(haystack string, needle string) int {needle_len := len(needle)if len(haystack) < needle_len{return -1}for i:=0 ; i <= len(haystack) - needle_len;i++{if needle == haystack[i:i+needle_len]{return i}}return -1
}

  

459.重复的子字符串

思路:遍历完所有的子串,然后匹配母串是否能由子串组成。记得剪枝。

func repeatedSubstringPattern(s string) bool {if len(s) == 0 {return true}lens := len(s)tag := false//先确定一个子串然后for i := 1; i < lens; i++ {//这样的话无法组成if lens % i != 0{continue}sub := s[0:i]lensb := len(sub)for j := 0; j <= lens-lensb; j += lensb {println(sub)if sub != s[j:j+lensb] {break}if j == lens-lensb {tag = true}}}return tag
}

  

http://www.jsqmd.com/news/3821/

相关文章:

  • 当日总结(课后作业2)
  • Codeforces Global Round 29 (Div. 1 + Div. 2) A~E
  • AI 低代码平台:不止于 “快”,解码技术融合的深层逻辑
  • 实用指南:【知识拓展Trip Five】寄存器
  • 动态内存管理(2) - 详解
  • 计算机视觉(opencv)实战二十七——目标跟踪 - 教程
  • P8367 [LNOI2022] 盒
  • 蓝桥杯 2025 省 B 题:画展布置 - 题解笔记
  • 二维坐标下的运算
  • Polar2025秋季个人挑战赛web-writeup
  • 题解:P12751 [POI 2017 R2] 集装箱 Shipping containers
  • 弱网配置
  • 通过【开题答辩过程】以《基于JavaEE的创意产品众筹平台的设计与实现》为例,不会开题答辩的能够进来看看
  • Nano-Banana免费使用指南:一键生成专属3D手办,附超详细提示词 - 指南
  • 绘制金融集团监控大屏的地图demo
  • 如何在CentOS 7上安装bzip2-1.0.6-13.el7.x86_64.rpm RPM包(详细步骤)
  • 实用指南:《原神助手》开源神器:游戏体验大升级
  • AM1.5G 太阳光谱 - 教程
  • 2025年Java常见面试题
  • 实用指南:k8s 跟 nacos 关于服务注册以及服务发现
  • 9-25
  • AT_agc021_d [AGC021D] Reversed LCS
  • 常用注解汇总
  • adb shell 常用文件命令
  • 你所不知道的Spring的@Autowired实现细节
  • Java文件编程
  • 自我介绍与规划
  • 软件工程学习日志2025.9.25
  • 从50ms到30ms:YOLOv10部署中图像预处理的性能优化实践 - 实践
  • 苏联的经典数学教材