跳到正文
源码达人

标签:Golang

【算法】交换字符 (2)

算法

需求 给定两个字符串A和B,可以对A中的任意字符进行替换,如果要替换某个字符,则所有的此字符都要替换成相同字符。 需要判断字符串A是否可以通过字符替换得到字符串B。 例如,如果输入字符串A为“addca”,字符串B为“cookc”,则字符串A可以通过字符替换得到字符串B。 因为将A字符串中的字符'a…

【算法】交换字符 (1)

算法

需求 输入两个字符串,如果交换第1个字符串中的两个字符后就可以得到第2个字符串,则表明这两个字符串可以相互转换。 例如输入“acb”和“cab”,可以满足转换。 思路 要满足转换条件,两个字符串需要满足如下条件: 如果两个字符串完全相同,则只有字符串中存在重复的字符时才满足条件(将重复的字符交换一次…

【算法】根据字符出现的频率进行排序

算法

需求 输入一个字符串,对字符串的字符进行排列,按照其中字符的出现频率降序进行排序。 思路 可以定义一个字典,字典的key是字符,value是出现的次数,然后按照value进行排序。 大部分语言都可以对字典排序,但是go不支持,需要定义一个切片再排序重组。 实现 package chapter03 i…

【算法】格式字符串进阶

算法

需求 给定一个字符串,检查是否可以重新排列字符串,使结果满足如下条件: 相邻的字符不相同 如果满足条件,则返回任意可行的结果,否则返回空字符串。 比如,给定字符串 "aab",返回 "aba"。 思路 首先需要找到一种算法来不同都字符穿插排列。并非任何场景的输入都可以构成新的字符串,因此我们需要一种…

【算法】格式化字符串

算法

需求 给定一个混合数字和字母的字符串,尝试编写程序对字符串进行格式化,使得新的字符串满足如下条件: 相同类型的字母不能相连,即数字的左右必须是字母,字母的左右必须是数字。 如果无法满足上述条件,则返回空字符串。 思路 根据需求,字符被分为数字型和字母型这两类,那么第一步就需要对字符进行分类。 分类完…

用 Go 的范型实现 MongoDB 的 CRUD 操作

Golang

MongoDB是一个非常强大的数据库,它提供了一个非常简单的接口,可以让我们在Go中使用它。 前几天用gin+gorm实现一个小功能,根据操作的方法,发现很容易实现通用的CRUD操作。 比如批量查询数据时,可以定义一个interface或具体结构体去绑定结果集: # 返回值也可以定义为interfa…

gin + grom 实现分页功能

Golang

项目介绍 使用gin + gorm实现分页,按一般的mvc架构思想去划分目录,良好的编码习惯是用Dao层去查询数据库,Server层去实现业务逻辑(此案例业务逻辑简单所以没有封装)。 第三方库 gin gorm以及对应的mysql驱动包 目录结构 ├── README.md ├── config │…

Go + Vercel 实现简易每日早报

Golang

经常可以看到 每日60s读懂世界 就尝试用go实现, 另外对于Vercel的一键部署工具挺感兴趣的。 Vercel既可以用来做测试环境,也可以做生产环境,本质上是一个使用HTTP触发事件的Serverless应用, 项目在github上,想学习的可以去参考一下。 Vercel可以直接运行html文件…

golang 并发编程

Golang

CPU基本概念 要了解golang的并发编程,需要先简单了解cpu是什么? cpu是计算机的“大脑”,不仅能实现基本算术运算,还能通过总线控制和协调电子配件的输入和输出。我们编写的程序代码,比如打印语句,最终是由cpu从内存中取得指令、解码、执行。cpu执行指令速度非常快,通常执行一条指令只需要零点…