題目描述:
字串的左旋轉操作是把字串前面的若干個字符轉移到字串的尾部,
請定義一個函式實作字串左旋轉操作的功能,
比如,輸入字串"abcdefg"和數字2,該函式將回傳左旋轉兩位得到的結果"cdefgab",
示例 1:
輸入: s = "abcdefg", k = 2
輸出: "cdefgab"
示例 2:
輸入: s = "lrloseumgh", k = 6
輸出: "umghlrlose"
限制:
1 <= k < s.length <= 10000
解題思路:
本題做法較多,本文主要介紹 “字串切片” , “串列遍歷拼接” , “字串遍歷拼接” 三種方法,
由于本題的多解法涉及到了 字串為不可變物件 的相關概念,導致效率區別較大,因此,單列一節 三種方法的效率分析 ,望對各位有所幫助,題解鏈接:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/solution/mian-shi-ti-58-ii-zuo-xuan-zhuan-zi-fu-chuan-qie-p/
作者:jyd
鏈接:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/solution/mian-shi-ti-58-ii-zuo-xuan-zhuan-zi-fu-chuan-qie-p/
來源:力扣(LeetCode)著作權歸作者所有,商業轉載請聯系作者獲得授權,非商業轉載請注明出處,
注意:本博客非題解,而是在看了Leetcode官網上的題解之后,總結、抽取出相對自己而言“新”的知識點,
一、關于String的詳解:
0.參考:
https://www.cnblogs.com/niujifei/p/11303420.html
http://c.biancheng.net/view/830.html
1.String 是參考資料型別,不是基本資料型別,
2.類 String 中包括用于檢查各個字串的方法:比如用于比較字串,搜索字串,提取子字串以及創建具有翻譯為大寫或小寫的所有字符的字串的副本,
下圖來自https://www.jb51.net/article/169302.htm

3.string類提取“子字串(字串片段)”的方法:
1. 形式一:substring(int beginIndex)
2. 形式二:substring(int beginIndex,int endIndex)
注意,下標以0為起始下標,形式一表示截取范圍是[beginIndex,末尾] ,
形式二表示截取范圍是[beginIndex, endIndex),注意,是前閉后開
舉例見下圖
4.由于String的不可變性導致在字串處理的程序中出現多余的中間值,降低效率,因此出現了StringBuffer和StringBuilder,這兩者沒太大區別,主要是StringBuffer為執行緒安全的,而StringBuilder不是,
StringBuffer和StringBuilder參考資料詳見:
http://c.biancheng.net/view/5822.html
https://www.runoob.com/java/java-stringbuffer.html
5.string字串操作比較重要,string類有很多方法可供使用,
其中獲取一個string字串中的某個字符,可以使用下標結合charAt的方法
String str ="adadsauo";//定義一個字串為例子charfir = str.charAt(0);//獲取字串的第一個字符chari= str.charAt(i);//獲取字串的第i個字符
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/255087.html
標籤:其他

