Golang字符串变位词示例详解
实现目标
本文的目标是写出一个函数anagram(s,t)去判断两个字符串是否是颠倒字母顺序构成的。下面话不多说了,来一起看看详细的介绍吧。
GoLang实现
funcsolution(s,tstring)bool{
ifs==t{
returntrue
}
length:=len(s)
iflength!=len(t){
returnfalse
}
//''32-->~126
constMAX_ASCIIint=94
constSPACE_INDEXrune=32
numbers:=[MAX_ASCII]int{}
sRune:=[]rune(s)
tRune:=[]rune(t)
fori:=0;i
其中关键点1:
定义保存最后判断两个字符串是否相同的长度的取值:
根据ASCII表可以知道:
第一个单字符''的10进制值位32,最后一个单字符'~'10进制值位126,得到之间的差值为94,
这里预测每个字符都被使用到了,所以长度直接定义为94了.
Java实现和上面类似:
publicbooleananagram(Strings,Stringt){
if(s==null||t==null||s.length()==0||s.length()!=t.length()){
returnfalse;
}
if(s.equals(t))returntrue;
finalintMAX_ASCII=94;
finalcharSPACE_INDEX='';
int[]numbers=newint[MAX_ASCII];
intlength=s.length();
char[]sCharArray=s.toCharArray();
char[]tCharArray=t.toCharArray();
for(inti=0;i
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。