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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。