力扣151--反轉字符串中的單詞(優)

清晰易懂,簡單高效!

大體思路:

每次截取到想要的單詞,拼接到新的sb中,過程中伴隨雙指針進行空格位置指向控制,

其中如果start指針如果==0的情況要放在第一個判斷條件防止邊界條件失效,并且這種情況下截取的是最后一個單詞,此時不需要加額外空格。

class Solution {public String reverseWords(String s) {s = s.trim();StringBuilder sb = new StringBuilder();int end = s.length() - 1;int start = end;while(start >= 0){//這里分四種情況來決定每次截取新的字符串位置if(start == 0) {sb.append(s.substring(start, end + 1));start--;} else if(s.charAt(start) !=' ') {start--;} else if(s.charAt(start) == ' '){sb.append(s.substring(start + 1, end + 1) + " ");while(start >=0 && s.charAt(start) == ' ')start--;end = start;} ?elsestart--;}return sb.toString();}
}

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

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

相關文章

Linux系統運維腳本:shell腳本查看一定網段范圍在線網絡設備的ip地址和不在線的網絡設備的數量(查看在線和不在線網絡設備)

目 錄 一、需求說明 二、解決方案 (一)解決思路 (二)方案 三、腳本程序實現 (一)腳本代碼和解釋 1、腳本代碼 2、代碼解釋 (二)腳本驗證 1、腳本編輯…

CrossOver 24下載-CrossOver 24 for Mac下載 v24.0.0中文永久版

CrossOver 24是一款可以讓mac用戶能夠自由運行和游戲windows游戲軟件的虛擬機類應用,雖然能夠虛擬windows但是卻并不是一款虛擬機,也不需要重啟系統或者啟動虛擬機,類似于一種能夠讓mac系統直接運行windows軟件的插件。它以其出色的跨平臺兼容…

NVMe開發——PCIe復位

簡介 PCIe中有4種復位機制,早期的3種被稱為傳統復位(Conventional Reset)。傳統復位中的前2種又稱為基本復位(Fundamental Resets),分別為冷復位(Cold Reset),暖復位(Warm Reset)。第3種復位為熱復位(Hot Reset)。第4種復位被稱為功能級復位…

js 正則記錄

正則表達式 正則表達式創建一個正則表達式修飾符常用的特殊字符使用正則表達式的方法replace指定字符串作為替換項使用場景:交換字符串中的兩個單詞將"-"鏈接的方式改為駝峰式(忽略開頭的-)將華氏溫度轉換為響應的攝氏溫度 常用正則示例判斷輸入是否是正確…

使用docker安裝dolphinscheduler

1、前提是安裝docker和docker-compose 2、#mkdir /data/dolphinscheduler 3、鏡像 docker load -i dolphinscheduler-mysql-driver.tar docker pull zookeeper:3.6.2:3.6.2 docker tag a7 bitnami/zookeeper:3.6.2 理論上postgresql也可以在線pull,但是在線do…

179基于matlab的2D-VMD處理圖像

基于matlab的2D-VMD處理圖像,將圖片進行VMD分解,得到K個子模態圖,將每個模態圖進行重構,得到近似的原圖。可以利用這點進行圖像去噪。程序已調通,可直接運行。 179 2D-VMD 圖像分解重構 圖像處理 (xiaohongshu.com)

每日五道java面試題之spring篇(九)

目錄: 第一題. 說一下Spring的事務傳播行為第二題. 說一下 spring 的事務隔離?第三題. Spring AOP and AspectJ AOP 有什么區別?AOP 有哪些實現方式?第四題. JDK動態代理和CGLIB動態代理的區別第五題. 解釋一下Spring AOP里面的幾…

Hyperf crontab 定時任務組件

composer require hyperf/crontab autoload里面配置process和crontab,這里主要是對crontab配置里的其他任務屬性配置進行嘗試。 onOneServer singleton onOneServer 和 singleton 在crontab源碼中src/Strategy/Executor.php 中decorateRunnable是控制是否執行的。…

【白嫖8k買的機構vip教程】Appium自動化(3):Appium-Desktop界面介紹

Appium-Desktop主界面包含三個菜單Simple、Advanced、Presets Simple界面: Host設置Appium server的ip地址,本地調試可以將ip地址修改為127.0.0.1;Port設置端口號,默認是4723不用修改Start Server 啟動 Appium serverEdit Confi…

重生奇跡MU玩家容易遇到的問題

1、玩家可以在畫面左上角座標旁找到「奇跡助手」的小按鈕,用它來開啟介面。 2、打怪范圍:自動尋找所設定范圍內的怪物,勾選后角色搜索范圍內若無可攻擊的目標,將會隨機移動位置直到有攻擊目標為止,但移動范圍不超出所…

搭建LNMP環境并搭建論壇和博客

目錄 一、LNMP架構原理 二、編譯安裝Nginx 三、編譯安裝MySQL 四、編譯安裝PHP 五、配置Nginx支持PHP解析 六、安裝論壇 七、安裝博客 一、LNMP架構原理 LNMP架構,是指在Linux平臺下,由運行Nginx的web服務器,運行PHP的動態頁面解析程序…

Node.js_基礎知識(http模塊)

網絡基礎 URL的組成結構:協議名: // 主機名 [:端口號] [/路徑] [?查詢字符串]協議默認端口: http:80,開發常用端口有 3000、8080、8090、9000https: 443 如果端口被其他程序占用,可以使用 資源監視器 找到占用端口的…

Python:練習:編寫一個程序,錄入一個美元數量(int),然后顯示出增加%5稅率后的相應金額。

案例: 編寫一個程序,錄入一個美元數量(int),然后顯示出增加%5稅率后的相應金額。格式如下所示: Enter an amount:100 With tax added:$105.0 思考: 1、錄入一個美元數量,錄入&am…

解決GitHub無法訪問的問題:手動修改hosts文件與使用SwitchHosts工具

?? 歡迎大家來訪Srlua的博文(づ ̄3 ̄)づ╭?~?? 🌟🌟 歡迎各位親愛的讀者,感謝你們抽出寶貴的時間來閱讀我的文章。 我是Srlua,在這里我會分享我的知識和經驗。&#x…

【C++】一個求數組中最大元素的函數模板

題目 設計一個分數類 F r a c t i o n Fraction Fraction,再設計一個名為 M a x e l e m e n t Max_element Maxe?lement 的函數模板,能夠求數組中最大的元素,并用該模板求一個 F r a c t i o n Fraction Fraction 數組中的最大元素。 C…

SpringBoot原理-配置優先級(黑馬學習筆記)

配置優先級 在我們前面的課程當中,我們已經講解了SpringBoot項目當中支持的三類配置文件: ● application.properties ● application.yml ● application.yaml 在SpringBoot項目當中,我們要想配置一個屬性,可以通過這三種方…

Liunx前后端項目部署(小白也可安裝)

文章目錄 一、CentOS服務器的安裝二、jdk安裝三、Tomcat安裝四、MySQL安裝、五、nginX安裝六、多個項目負載均衡,部署后端項目七、前端項目部署 一、CentOS服務器的安裝 選擇liunx,下面選擇CentOS 7 ![在這里插入圖片描述](https://img-blog.csdnimg.cn…

oracle安裝RAC手動配置互信

cd $ORACLE_HOME/sshsetup grid的話是GI_HOME(一個節點上跑即可) ./sshUserSetup.sh -user oracle -hosts "vma vmb" -advanced -noPromptPassphrase集群(oracle,grid都要做) node1: [oracle node1~]$ ssh-keygen -t rsa //…

一文講透:可視化大屏中3D元素的融入和使用方法

在可視化大屏中,3D元素融入的越來越多,貝格前端工場經常接到這類項目,很多老鐵認為加個3D效果很easy,其實不然,工序非常復雜,總結如下。 一、什么是3D技術 三維展示(3D展示)是指使用…

[BUUCTF]-Reverse:reverse3解析

查看ida 從下圖的/3和*4可以推斷得出來是base64加密。 ida里大致意思就是我們輸入的字符串經過base64加密,循環遞減,最后等于str2,那我們輸入的字符串就是flag。 完整exp: import base64 liste3nifIH9b_CndH print(len(list))fl…