day6 力扣公共前缀--go实现---对字符串的一些思考

今日份知识:

curl -x 指定方法名  请求的url -d  请求体body里面的内容 //curl命令
curl -x Get 127.0.0.1:8080/add/user -d jinli

curl如果不指定方法,默认使用get方法,在go里面,get方法到底可以不可以把内容数据写在body里面传递呢

其实是可以的,通常如果我们使用get方法,都是把参数写在url里面,是否支持这个需要看具体的浏览器是否支持,例如google好像就不支持,但是自己写个webui,然后使用curl -x Get去获取body的话是可以获取到的,

但是RFC7231不鼓励这样的方式,所以这样的方式还是有可能读不到的

get方法是幂等性的,post不是幂等的

今日份力扣:14 最长前缀

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。

示例 1:

输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例 2:
输入:strs = [“dog”,“racecar”,“car”]
输出:“”
解释:输入不存在公共前缀。

提示:

1 <= strs.length <= 200 0 <= strs[i].length <= 200 strs[i] 仅由小写英文字母组成

今日份思考:使用go实现

字符串和数组其实很像,字符串在go里面一旦定义就无法更改,所以我们想改变字符串,就要拼接,替换等操作,那么也就会出现很多已经写好的api,比如go可以使用+号连接,可以使用fmt.Sprintf,可以使用strings里面的aip,可以使用buffer.strings等函数,

func commentPerf(str []string) string {if str == nil || len(str) == 0 {return ""}temp := ""for i := 0; i < len(str[0]); i++ {for j := 1; j < len(str); j++ {if i >= len(str[j]) || str[j][i] != str[0][i] {return temp}}temp = temp + string(str[0][i])}return temp
}

下面是go实现具体demo

+:会对字符串进行遍历,计算并开辟一个新的空间来存储原来的两个字符串。```go
func main() {a := "nihao"b := "hello"fmt.Println(a + b)
}

Sprintf:必须要用反射获取值,因此有性能损耗

func main() {a := "nihao"b := "hello"c := fmt.Sprintf("%s,%s", a, b)fmt.Println(c)
}

strings.Builder:里面维护了一个可变的字节缓冲区,不用创建新的字符串变量,可以直接往缓冲区增加字符串、字符或字节片段,它是直接把[]byte转换为string,从而避免变量拷贝

type Builder struct {addr *Builderbuf  []byte
}func main() {a := "nihao"b := "hello"var bulid strings.Builderbulid.WriteString(a)bulid.WriteString(" ")bulid.WriteString(b)c := bulid.String()fmt.Println(c)
}

bytes.Buffer:字节缓冲器,里面存放都是byte,使用 bytes.Buffer 时,可以避免频繁地创建新的字符串变量,从而减少内存分配,也避免变量拷贝

type Buffer struct {buf      []byteoff      intlastRead readOp
}func main() {a := "nihao"b := "hello"var bytes bytes.Bufferbytes.WriteString(a)bytes.WriteString(" ")bytes.WriteString(b)c := bytes.String()fmt.Println(c)
}

strings.Join:自定义分隔符,适用对象[]string类型,因为我们传入切片长度固定,所以提前进行容量分配可以减少内存分配

func main() {a := []string{"nihao", "hello"}c := strings.Join(a, "+")fmt.Println(c)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web架构师编辑器内容-创建业务组件和编辑器基本行为

编辑器主要分为三部分&#xff0c;左侧是组件模板库&#xff0c;中间是画布区域&#xff0c;右侧是面板设置区域。 左侧是预设各种组件模板进行添加 中间是使用交互手段来更新元素的值 右侧是使用表单的方式来更新元素的值。 大致效果&#xff1a; 左侧组件模板库 最初的模板…

基于JSP+Servlet+Mysql的调查管理系统

基于JSPServletMysql的调查管理系统 一、系统介绍二、功能展示1.项目内容2.项目骨架3.数据库3.登录4.注册3.首页5.系统管理 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目名称&#xff1a;基于JSPServlet的调查管理系统 项目架构&#xff1a;B/S架构 开发语言&#…

在Next.js和React中搭建Cesium项目

在Next.js和React中搭建Cesium项目&#xff0c;需要确保Cesium能够与服务端渲染(SSR)兼容&#xff0c;因为Next.js默认是SSR的。Cesium是一个基于WebGL的地理信息可视化库&#xff0c;通常用于在网页中展示三维地球或地图。下面是一个基本的步骤&#xff0c;用于在Next.js项目中…

群组推荐模型---SoAGREE(Social-Enhanced Attentive Group Recommendation)

SoAGREE 概要方法Hierarchical Attention Network LearningAttentive User Representation Learning NCF(Neural Collaborative Filtering) 概要 此论文是在AGREE(Attentive Group Recommendation)模型上的进一步增强&#xff0c;有兴趣的朋友可以去看上一篇博客讲述的就是AGR…

.raw 是一个 Anndata 包中的对象,用于存储原始的单细胞数据。scanpy种如何查看 .raw 对象的内容,

1查看 .raw 对象的内容&#xff0c;可以使用以下方法&#xff1a; .raw 是一个 Anndata 包中的对象&#xff0c;用于存储原始的单细胞数据。 使用 .X 属性查看原始数据矩阵&#xff1a;.raw.X 这将返回一个 Numpy 数组&#xff0c;其中包含原始数据的数值。 使用 .var_names 属…

nodejs微信小程序+python+PHP兴趣趣班预约管理系统设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

ARM作业1

汇编实现三个灯闪烁 汇编代码&#xff1a; .text .global _start _start: 设置GPIOE,GPIOF时钟使能LDR R0,0X50000A28 LDR R1,[R0] ORR R1,R1,#(0x3<<4) STR R1,[R0] 设置PE10,PF10,PE8为输出 LED1LDR R0,0X50006000LDR R1,[R0]ORR R1,R1,#(0X1<<20)BIC R1…

力扣每日一题day38[106. 从中序与后序遍历序列构造二叉树]

给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出&#xff1a;[…

华为鸿蒙(HarmonyOS):连接一切,智慧无限

华为鸿蒙是一款全场景、分布式操作系统&#xff0c;旨在构建一个真正统一的硬件生态系统。该操作系统于2019年8月首次发布&#xff0c;并被设计为可以应用于各种设备&#xff0c;包括智能手机、智能手表、智能电视、车载系统等多种智能设备。 推荐一套最新版的鸿蒙4.0开发教程 …

从零开发短视频电商 在AWS上SageMaker部署模型自定义日志输入和输出示例

从零开发短视频电商 在AWS上SageMaker部署模型自定义日志输入和输出示例 怎么部署自定义模型请看&#xff1a;从零开发短视频电商 在AWS上用SageMaker部署自定义模型 都是huaggingface上的模型或者fine-tune后的。 为了适配jumpstart上部署的模型的http输入输出&#xff0c;我…

python一点通: 一文讲清Post 和 Put操作区别!

当我们使用网络服务时&#xff0c;如果我们不能小心地区分 POST 和 PUT&#xff0c;有时可能会触发错误。 在 Web 开发世界中&#xff0c;特别是在处理 RESTful API 时&#xff0c;HTTP 方法 POST 和 PUT 经常被使用&#xff0c;但常常被误解。这两者都用于向服务器发送数据&a…

Java设计模式之单例模式以及如何防止通过反射破坏单例模式

单例模式 单例模式使用场景 ​ 什么是单例模式&#xff1f;保障一个类只能有一个对象&#xff08;实例&#xff09;的代码开发模式就叫单例模式 ​ 什么时候使用&#xff1f; 工具类&#xff01;&#xff08;一种做法&#xff0c;所有的方法都是static&#xff0c;还有一种单…

使用 Elasticsearch 检测抄袭 (一)

作者&#xff1a;Priscilla Parodi 抄袭可以是直接的&#xff0c;涉及复制部分或全部内容&#xff0c;也可以是释义的&#xff0c;即通过更改一些单词或短语来重新表述作者的作品。 灵感和释义之间是有区别的。 即使你得出类似的结论&#xff0c;也可以阅读内容&#xff0c;获得…

Chrome浏览器http自动跳https问题

现象&#xff1a; Chrome浏览器访问http页面时有时会自动跳转https&#xff0c;导致一些问题。比如&#xff1a; 开发阶段访问dev环境网址跳https&#xff0c;后端还是http&#xff0c;导致接口跨域。 复现&#xff1a; 先访问http网址&#xff0c;再改成https访问&#xf…

MYSQL数据库的实操与备份

MySQL数据库的实操 MySQL数据库的操作 数据库授权语句grant all on *.* to 用户% identified by密码刷新授权表flush privileges 1.查看所有数据库show databases;2.切换数据库use 库名;3.创建库并指定字符集create database 库名 default charset ‘utf8’;4.查看当前所在数…

Springboot+vue的装饰工程管理系统(有报告),Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的装饰工程管理系统&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的装饰工程管理系统&#xff0c;采用M&#xff08…

vue3开发一个todo List

创建新的 Vue 3 项目&#xff1a; 按装vue3的 工具 npm install -g vue/cli创建一个新的 Vue 3 项目&#xff1a; vue create vue3-todolist进入项目目录&#xff1a; cd vue3-todolist代码&#xff1a; 在项目的 src/components 目录下&#xff0c;创建一个新的文件 Todo…

洛谷 NOIP2016 普及组 回文日期

这道题目本来是不难想思路的。。。。。。 然而我第一次做的时候改了蛮久才把代码完全改对&#xff0c;主要感觉还是不够细心&#xff0c;敲的时候也没注意见检查一些小错误&#xff0c;那么接下来不说废话&#xff0c;请看题干&#xff1a; 接下来请看输入输出的样例以及数据范…

听GPT 讲Rust源代码--src/tools(23)

File: rust/src/tools/clippy/rustc_tools_util/src/lib.rs 在Rust源代码中&#xff0c;rust/src/tools/clippy/rustc_tools_util/src/lib.rs文件的作用是为Clippy提供了一些实用工具和辅助函数。 该文件中定义了VersionInfo结构体&#xff0c;它有三个字段&#xff0c;分别为m…

Web组态可视化编辑器-by组态

演示地址&#xff1a; http://www.by-lot.com http://www.byzt.net web组态可视化编辑器&#xff1a;引领未来可视化编辑的新潮流 随着网络的普及和快速发展&#xff0c;web组态可视化编辑器应运而生&#xff0c;为人们在网络世界中创建和编辑内容提供了更加便捷的操作方式。这…