數據結構與算法--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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452923.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452923.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452923.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

三網融合情況下,實時語音通信技術解決之道

隨著技術和標準的不斷成熟,伴隨著“三網合一”的大潮,VoIP可望成為下一代電信基礎設施結構的楊心,使未來各電信業務綜合統一在IP網絡上成為可能,導致數據的融合和未來電信市場的重組,并帶來新的經濟模式和價值鏈。 Internet在全世界范圍內的快速發展和語音信號處理技術的進步,促…

ipv6相對于ipv4的改進

v更大的地址空間&#xff1a;16字節&#xff0c;128位v首部的簡化&#xff1a;只有7個固定域&#xff0c;撤消了有關分段的域和校驗和域&#xff0c;以便更快地處理分組&#xff0c;提高路由器的吞吐量縮短延時。v更好地支持選項&#xff1a;選項是有次序的&#xff0c;以便路由…

輕量高效的開源JavaScript插件和庫 【轉】

圖片布局輪播圖彈出層音頻視頻編輯器字符串表單存儲動畫時間其它加載器構建工具測試包管理器CDN圖片 baguetteBox.js - 是一個簡單易用的響應式圖像燈箱效果腳本。demoLightgallery.js - 是一個功能齊全的JavaScript圖像燈箱插件。demoviewerjs - 是一個圖像預覽插件。democrop…

Linux內核中的常用宏container_of其實很簡單【轉】

轉自&#xff1a;http://blog.csdn.net/npy_lp/article/details/7010752 開發平臺&#xff1a;Ubuntu11.04 編 譯器&#xff1a;gcc version 4.5.2 (Ubuntu/Linaro4.5.2-8ubuntu4) Container_of在Linux內核中是一個常用的宏&#xff0c;用于從包含在某個結構中的指針獲得結構本…

mysql concat例子_MYSQL中CONCAT詳解

concat()函數1. 功能&#xff1a;返回結果為連接參數產生的字符串。如有任何一個參數為NULL &#xff0c;則返回值為 NULL。2. 語法concat(str1, str2,...)3. 例子案例一&#xff1a;mysql> select concat(蘋果,香蕉,梨子);------------------------------| CONCAT(蘋果,香蕉…

常見的狀態響應碼

200&#xff1a;請求正常&#xff0c;服務器正常的返回數據 301&#xff1a;永久重定向。比如在訪問www.jingdong.com的時候&#xff0c;會重定向到www.jd.com。 302&#xff1a;臨時重定向。比如在訪問一個需要登錄的界面時&#xff0c;而此時沒有登錄&#xff0c;那么就會重定…

軟件行業為什么那么多項目經理

記得聽誰說過&#xff0c;軟件行業的項目經理太濫了&#xff0c;二十幾歲的毛頭小伙子&#xff0c;動不動就是項目經理&#xff0c;手下沒幾個人&#xff0c;管的也沒幾個事&#xff0c;在其他行業&#xff0c;項目經理一般都是四五十歲的老頭子做&#xff0c;要聯系這&#xf…

ipv6的表示方法

v冒分十六進制表示法X:X:X:X:X:X:X:X 其中X表示地址中16位二進制數的十六進制值 例&#xff1a;FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 v零壓縮法如其中有多個連續的零&#xff0c;則可用零壓縮法 如 &#xff1a;1080:0000:0000:0000:0008:0800:200C:417A 可寫成&am…

mysql php7安裝配置_centos7無網絡下安裝部署php7.1.33+mysql5.7.28+apache2.4.6-Go語言中文社區...

centos7無網絡下安裝部署php7.1.33mysql5.7.28apache2.4.6一、1、先ping www.baidu.com&#xff0c;root賬戶下&#xff0c;如果未聯網&#xff0c;創建目錄&#xff0c;把提前下載好的rpm包拷貝到rpm目錄下如圖&#xff1a;(如果沒有安裝包請查看我的另一篇教程下載這些安裝包…

webkit渲染

2019獨角獸企業重金招聘Python工程師標準>>> 參考鏈接 理解WebKit和Chromium 簡明魔法學院 Chrome軟件渲染 WebKit渲染基礎 Webkit 渲染基礎 Webkit不是瀏覽器,它是一個渲染引擎 軟件渲染 硬件渲染(GPU加速) 會觸發GPU加速的屬性 CSS3 3D transformation, trans…

element ui中dialog相關問題

一&#xff0c;今天需要在dialog里面引入另一個頁面&#xff0c;就是打開dialog顯示該頁面&#xff08;把頁面放到dialog中&#xff09;&#xff0c;引入的語句如下&#xff1a; <iframe src"view?pathrkdj_b" ></iframe> 二&#xff0c;使用table組件時…

數據結構與算法--4.使用堆棧模擬隊列

問題&#xff1a; 隊列的插入和刪除遵循先入先出的原則&#xff0c;而堆棧遵循后進先出的原則。用兩個堆棧模擬隊列&#xff0c;要求實現時不能分配超過O&#xff08;1&#xff09;的內存&#xff0c;時間復雜度必須是o&#xff08;m&#xff09;。 思路&#xff1a; 用兩個…

IT行業的你,在成本部門還是利潤部門

題外話&#xff1a;本文應該引起項目管理者和開發人員的思考&#xff1a;如何進行薪酬管理&#xff1f;如何規劃職業生涯&#xff1f; 生在IT行業&#xff0c;發現周圍很多朋友對薪酬問題有疑問&#xff0c;因為這種不解&#xff0c;導致經常帶情緒&#xff0c;對工作、生活很…

ipv4到ipv6的過渡

v雙協議站&#xff1a;過渡時期&#xff0c;站點必須同時支持IPv4和IPv6v隧道技術&#xff1a;IPv6主機之間通信必須使用IPv4的隧道v首部轉換&#xff1a;用于發送方使用IPv6&#xff0c;而接收方使用IPv4

關于爬蟲中常見的兩個網頁解析工具的分析 —— lxml / xpath 與 bs4 / BeautifulSoup...

http://www.cnblogs.com/binye-typing/p/6656595.html 讀者可能會奇怪我標題怎么理成這個鬼樣子&#xff0c;主要是單單寫 lxml 與 bs4 這兩個 py 模塊名可能并不能一下引起大眾的注意&#xff0c;一般講到網頁解析技術&#xff0c;提到的關鍵詞更多的是 BeautifulSoup 和 xpat…

java如何去掉html標簽_Java后端去掉HTML標簽獲取純文本-Fun言

今天又對我的博客首頁進行了一次版本的更新&#xff0c;使其自適應屏幕&#xff0c;獲得更好的用戶體驗&#xff0c;然后就出現點小問題&#xff0c;那就是原來的摘要是人為添加的&#xff0c;有長有短&#xff0c;對自適應屏幕有影響&#xff0c;所以我們現在是截取文章的前20…

單/雙中括號與測試條件

測試命令 tesst[]內置命令[[]]bash中的關鍵字 單中括號 格式[#express1#op#express2#] 注意&#xff1a;   其中#代表括號不能省略   不能匹配模式   變量引用應用雙引號括起&#xff0c;尤其當變量引用有空格時   與或非形式-a –o -not   常量應用單/雙引號括起  …

暗時間--平凡與優秀間的距離

每個人都希望&#xff0c;在他所從事的領域很優秀&#xff0c;那么如何才能優秀呢&#xff1f;有人做過一個研究&#xff0c;說那些優秀的音樂家&#xff0c;在他們成名之前&#xff0c;已經訓練過10000小時。有人可能成功得早&#xff0c;如莫扎特16歲&#xff0c;有些可能需要…

IP分組

IP分組就是根據Ip地址來進行分組&#xff0c;目的可以是為了對不同 的地址組分配不同的帶寬&#xff08;限速&#xff09;配置地址組時&#xff0c;其輸入格式為A.B.C.D-A.B.C.E&#xff0c;例如&#xff1a;192.168.1.1-192.168.1.250

python3基礎3--數據類型--數據運算--表達式if -else-while-for

一、python3 數據類型 1.1 數字例如&#xff1a;1,2,3,4等1.2 int&#xff08;整型&#xff09; 在32位機器上&#xff0c;整數的位數為32位&#xff0c;取值范圍為-2**31&#xff5e;2**31-1&#xff0c;即-2147483648&#xff5e;2147483647在64位系統上&#xff0c;整數的位…