日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构与算法--3.字符串的旋转

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构与算法--3.字符串的旋转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:

  • A是含有n個元素的數組,如果可以申請到最大內存,那么把A從位置i開始旋轉是比較簡單的。例如:A:a,b,c,d,e.其中i=3,旋轉后的字符串A為:d,e,a,b,c
  • 要求設計一個時間復雜度為O(n),空間復雜度為O(1)的算法,實現字符串A從給定位置開始旋轉。

思路:

  • 步驟一:首先將字符串整體旋轉;
  • 步驟二:將旋轉后的字符串按照旋轉中心,分為兩部分,再分別旋轉兩個部分。
""" 題目: A是含有n個元素的數組,如果可以申請到最大內存,那么把A從位置i開始旋轉是比較簡單的。例如:A:a,b,c,d,e.其中i=3,旋轉后的字符串A為:d,e,a,b,c 要求設計一個時間復雜度為O(n),空間復雜度為O(1)的算法,實現字符串A從給定位置開始旋轉 """ """ 思路: 步驟一:首先將字符串整體旋轉; 步驟二:將旋轉后的字符串按照旋轉中心,分為兩部分,再分別旋轉兩個部分。 """#設計函數,將將整個字符串倒轉 def roundString(S):begin = 0end = len(S) - 1ss = list(S)#交換begin和end執行的字符while begin < end:temp = ss[begin]ss[begin] = ss[end]ss[end] = tempbegin += 1end -= 1return ''.join(ss)# #測試代碼 # s ="abcdef" # #旋轉后的字符串應該是fedcba # s = roundString(s) # print(s)#將給定字符串從位置i開始旋轉 def rotateString(s,i):#首先將整個字符串倒轉,產生數組s0 = roundString(s)#倒轉后,整個字符分為前半部分的n-i個字符,后半部分的i個字符#第一部分:??t1 = s0[0:len(s0)-i]print(t1)#第二部分:??t2 = s0[len(s0)-i:]print(t2)# 分別將兩個部分旋轉s1 = roundString(s0[0:len(s0)-i])s2 = roundString(s0[len(s0)-i:])#將旋轉后的兩個部分合并return s1 + s2s ="abcdef" i = 4 #旋轉后的字符串應該是efabcd s = rotateString(s,i) print(s)

運行結果:

fe dcba efabcd

總結

以上是生活随笔為你收集整理的数据结构与算法--3.字符串的旋转的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。