golang中怎么利用leetcode实现有重复字符串的排列组合
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本篇文章给大家分享的是有关golang中怎么利用leetcode实现有重复字符串的排列组合,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
千家信息网最后更新 2025年02月02日golang中怎么利用leetcode实现有重复字符串的排列组合
本篇文章给大家分享的是有关golang中怎么利用leetcode实现有重复字符串的排列组合,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。
示例1:
输入:S = "qqe"
输出:["eqq","qeq","qqe"]
示例2:
输入:S = "ab"
输出:["ab", "ba"]
提示:
字符都是英文字母。
字符串长度在[1, 9]之间。
解题思路
1,这种问题,一般都是递归解决
2,由于存在重复元素,需要有去重逻辑
3,依次遍历取出每个元素,将它和剩余元素返回结果拼接。
4,对于S中的每个元素i,我们需要判断S[:i] 中是否出现过,如果出现过,我们可以跳过
例子:
输入:S = "qqe"
输出:["eqq","qeq","qqe"]
1,第一次我们取出第一个q,然后和 "qe"的结果拼接
2,第二次我们取第二个q的时候,和第一次计算结果一致,因此可以不必计算
代码实现
func permutation(S string) []string {
var r []string
if len(S)==0{
r=append(r,"")
return r
}
for i:=0;i
sl:=[]byte(S)
if !inArray(sl[:i],S[i]){
var r0 []string
if i==0{
r0=permutation(S[1:])
}else if i==len(S)-1{
r0=permutation(S[:len(S)-1])
}else{
r0=permutation(S[:i]+S[i+1:])
}
fmt.Println(r0,string([]byte{S[i]}))
for j,_:=range r0{
s:=string([]byte{S[i]})+r0[j]
r=append(r,s)
}
}
}
return r
}
func inArray(s []byte ,ta byte)bool{
for i,_:=range s{
if s[i]==ta{
return true
}
}
return false
}
以上就是golang中怎么利用leetcode实现有重复字符串的排列组合,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
字符
字符串
组合
元素
结果
输入
输出
更多
知识
示例
第一次
篇文章
实用
一致
之间
代码
例子
字母
就是
工作会
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ftp服务器上是不能下载文件的
四川金旗互联网科技有限公司
关于网络安全方案
怎么构建数据库约束
网络安全部裴顺红
浦东新区管理软件开发咨询热线
数据库系统哪个最重要
四十七岁应聘网络安全工程师
软件部署网络安全知识常见问题
分布式数据库主键怎么生成
5g网络安全用药
软件开发项目管理办法范文
留守儿童网络安全教育简报
数据库增加语法
津晋高速天津段有哪几个服务器
直销软件开发技术支持
悟空日记软件开发
固定资产管理软件开发包括哪些
网络安全和隐私问题 英语
网络安全行需求
邮件和服务器无法连接
网络安全调查结果分析
顺丰员工删除数据库
小学网络安全知识教育画小树
连连看软件开发
开一个服务器有多少钱
余烬风暴迪丽热巴捏脸数据库
服务器11051是什么端口
肇庆通信软件开发
网络安全知识问答名单