【算法】根据字符出现的频率进行排序
需求 输入一个字符串,对字符串的字符进行排列,按照其中字符的出现频率降序进行排序。 思路 可以定义一个字典,字典的key是字符,value是出现的次数,然后按照value进行排序。 大部分语言都可以对字典排序,但是go不支持,需要定义一个切片再排序重组。 实现 package chapter03 i…
分享算法知识和技巧
需求 输入一个字符串,对字符串的字符进行排列,按照其中字符的出现频率降序进行排序。 思路 可以定义一个字典,字典的key是字符,value是出现的次数,然后按照value进行排序。 大部分语言都可以对字典排序,但是go不支持,需要定义一个切片再排序重组。 实现 package chapter03 i…
需求 给定一个字符串,检查是否可以重新排列字符串,使结果满足如下条件: 相邻的字符不相同 如果满足条件,则返回任意可行的结果,否则返回空字符串。 比如,给定字符串 "aab",返回 "aba"。 思路 首先需要找到一种算法来不同都字符穿插排列。并非任何场景的输入都可以构成新的字符串,因此我们需要一种…
需求 给定一个混合数字和字母的字符串,尝试编写程序对字符串进行格式化,使得新的字符串满足如下条件: 相同类型的字母不能相连,即数字的左右必须是字母,字母的左右必须是数字。 如果无法满足上述条件,则返回空字符串。 思路 根据需求,字符被分为数字型和字母型这两类,那么第一步就需要对字符进行分类。 分类完…
一般刷算法题我都是去leetcode官网,但每次都要去网页提交代码,想练习的时候还是有点麻烦,看到vscode有刷题插件就来推荐了。为了能正常使用该插件,需要先安装node。 可以直接去vscode搜索leetcode,一般排在第一的是下载量最高的,点击直接安装。 下载完之后设置节点: 这里选择中国…