摘要:實現其中關鍵點定義保存最后判斷兩個字符串是否相同的長度的取值根據表可以知道第一個單字符的進制值位最后一個單字符進制值位得到之間的差值為這里預測每個字符都被使用到了所以長度直接定義為了實現和上面類似歡迎加入學習交流群,大家一起學習交流。
GoLang 實現
func solution(s , t string)bool{
if s == t { return true } length := len(s) if length != len(t) { return false } //" " 32 --> ~ 126 const MAX_ASCII int= 94 const SPACE_INDEX rune = 32 numbers := [MAX_ASCII]int{} sRune := []rune(s) tRune :=[]rune(t) for i := 0 ; i < length ; i++ { index := tRune[i] - SPACE_INDEX numbers[index]++ index = sRune[i] - SPACE_INDEX numbers[index]-- }
for i := 0 ; i < MAX_ASCII / 2 ; i++{ mergeSize := numbers[i] if mergeSize != 0 || mergeSize != numbers[MAX_ASCII - 1 - i]{ return false } } return true
}
其中關鍵點1 :
定義保存最后判斷兩個字符串是否相同的 長度的取值:
根據ASCII 表可以知道:
第一個單字符 " " 的10 進制值位32 , 最后一個單字符 "~" 10進制值位 126 , 得到之間的差值為 94 ,
這里預測每個字符都被使用到了, 所以長度直接定義為 94了.
Java 實現 和上面類似:
public boolean anagram(String s, String t) {
if (s == null || t == null || s.length() ==0 || s.length() != t.length()){ return false; } if (s.equals(t))return true; final int MAX_ASCII = 94; final char SPACE_INDEX = " "; int[] numbers = new int[MAX_ASCII]; int length = s.length(); char[] sCharArray = s.toCharArray(); char[] tCharArray = t.toCharArray(); for(int i = 0 ; i< length ; i++){ int index = sCharArray[i] - SPACE_INDEX; numbers[index]++; index = tCharArray[i] - SPACE_INDEX; numbers[index]--; } for (int i =0 ; i < MAX_ASCII / 2 ; i++ ) { int mergeSize = numbers[i]; if ( mergeSize != 0 || mergeSize != numbers[MAX_ASCII - 1 - i]){ return false; } } return true; }
歡迎加入學習交流群569772982,大家一起學習交流。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67651.html
Map接口 Map是將鍵映射到值的對象,map不能包含重復的鍵:每個鍵最多可以映射一個值,它模擬數學函數抽象。Map接口包括基本操作的方法(如put、get、remove、containsKey、containsValue、size和empty),批量操作(如putAll和clear)和集合視圖(如keySet、entrySet和values)。 Java平臺包含三個通用Map實現:HashMap...
摘要:遇到問題查查,看看,大神的講解問問島胖君下面是我最近整理出來的關于字符串的文章的怎么翻譯匯集目錄非常希望強化博客的功能,比如分類,置頂。 雖是讀書筆記,但是如轉載請注明出處 http://segmentfault.com/blog/exploring/ .. 拒絕伸手復制黨 最近在看算法和語言,基本屬于看知識 --> java實現 --> 整理blog 這個路線。 遇到問題查查st...
摘要:字符串簡介內置類型,不可理性,要更改的話考慮轉,之類對來說,一個的范圍,位面試題總體分析和數組相關,內容廣泛概念理解字典序,哪個排在字典前面,哪個字典序就小簡單操作插入刪除字符,旋轉規則判斷羅馬數字轉換,是否是合法的整數浮點數數字運算套數加 字符串簡介 String 內置類型,不可理性,要更改的話考慮轉StringBuffer,StringBuilder,char[]之類 對java來...
摘要:但是在與此同時出現了然后隨著的出現,又更名為,真的是百家爭鳴那。采用文件來追蹤依賴,而不是的和文件。然而他們并不想提交大量的文件,因為鏈碼程序僅僅是個小的代碼庫。想必在年會逐漸替換以及中的,希望可以終結混亂的包管理機制。 作者: TopJohn原文連接:https://www.xuanzhangjiong.to... Fabric與dep 個人感受 接觸Golang有2年時間了,從最...
閱讀 966·2021-11-24 09:39
閱讀 3391·2021-10-27 14:20
閱讀 2325·2019-08-30 14:08
閱讀 3366·2019-08-29 16:34
閱讀 2181·2019-08-26 12:14
閱讀 2108·2019-08-26 11:54
閱讀 2777·2019-08-26 11:44
閱讀 2479·2019-08-26 11:38