**問題描述**
給定兩個字符串,請編寫程序,確定其中一個字符串的字符重新排列后,能否變成另一個字符串。 這里規定【大小寫為不同字符】,且考慮字符串重點空格。給定一個 string s1 和一個 string s2,請返回一個 bool,代表兩串是否重新排列后可相同。 保證兩串的長度都小于等于 5000。
**解題思路**
首先要保證字符串長度小于 5000。之后只需要一次循環遍歷 s1 中的字符在 s2 是否都存在即可。
**源碼參考**
~~~
func isRegroup(s1,s2 string) bool {
sl1 := len([]rune(s1))
sl2 := len([]rune(s2))
if sl1 > 5000 || sl2 > 5000 || sl1 != sl2{
return false
}
for _,v := range s1 {
if strings.Count(s1,string(v)) != strings.Count(s2,string(v)) {
return false
}
}
return true
}
~~~
**源碼解析**
這里還是使用 golang 內置方法`strings.Count`來判斷字符是否一致。
- Golnag常見面試題目解析
- 交替打印數組和字母
- 判斷字符串中字符是否全都不同
- 翻轉字符串
- 判斷兩個給定的字符串排序后是否一致
- 字符串替換問題
- 機器人坐標計算
- 語法題目一
- 語法題目二
- goroutine和channel使用一
- 實現阻塞讀的并發安全Map
- 定時與 panic 恢復
- 高并發下的鎖與map讀寫問題
- 為 sync.WaitGroup 中Wait函數支持 WaitTimeout 功能.
- 七道語法找錯題目
- golang 并發題目測試
- 記一道字節跳動的算法面試題
- 多協程查詢切片問題
- 對已經關閉的的chan進行讀寫,會怎么樣?為什么?
- 簡單聊聊內存逃逸?
- 字符串轉成byte數組,會發生內存拷貝嗎?
- http包的內存泄漏