算法通關村第十二關-白銀挑戰字符串經典題目

大家好我是蘇麟 , 今天帶來字符串相關的題目 .

大綱

    • 反轉問題
      • 字符串反轉
      • K個一組反轉
      • 僅僅反轉字母
      • 反轉字符串中的單詞

反轉問題

字符串反轉

描述 :

編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 s的形式給出。

題目 :

LeetCode 344. 反轉字符串 :

字符串反轉

在這里插入圖片描述
分析 :

這道題還是很簡單的 , 只要把最前邊和最后的元素調換就行了 , 用兩個變量記錄第一個元素下標 和 最后一個變量下標 , 操作變量來完成反轉 .

解析 :

class Solution {public void reverseString(char[] s) {if(s.length == 0 ||s == null){return;}int left = 0;int right = s.length - 1;for(int i = 0 ;i < s.length / 2;i++){char temp = s[left];s[left] = s[right];s[right] = temp;left++;right--;}}
}

K個一組反轉

描述 :

給定一個字符串 s 和一個整數 k,從字符串開頭算起,每計數至 2k 個字符,就反轉這 2k 字符中的前 k 個字符。

題目 :

LeetCode 541. 反轉字符串 II :

f反轉字符串

在這里插入圖片描述
分析 :

我們直接按題意進行模擬就可以: 反轉每個下標從 2k的倍數開始的,長度為 k的子串。若該子串長度不足k,則反轉整個子串。

解析 :

class Solution {public String reverseStr(String s, int k) {char[] arr = s.toCharArray();int length = s.length();for(int i = 0;i < length;i+= 2 *k){exchangeArr(arr,i,Math.min(i + k,length) -1 );}return new String(arr);}public void exchangeArr(char[] arr, int left , int right){while(left < right){char a = arr[left];arr[left] = arr[right];arr[right] = a;left++;right--;}}
}

僅僅反轉字母

描述 :

給你一個字符串 s ,根據下述規則反轉字符串:

  • 所有非英文字母保留在原有位置。
  • 所有英文字母(小寫或大寫)位置反轉。

返回反轉后的 s 。

題目 :

LeetCode 917. 僅僅反轉字母 :

僅僅反轉字母

在這里插入圖片描述
分析 :

將 s 中的所有字母單獨存入棧中,所以出棧等價于對字母反序操作然后,遍歷 s 的所有字符,如果是字母我們就選擇棧頂元素輸出。

解析 :

class Solution {public String reverseOnlyLetters(String s) {Stack<Character> stack = new Stack<>();for(char temp : s.toCharArray()){if(Character.isLetter(temp)){stack.push(temp);}}StringBuilder ans = new  StringBuilder();for(char temp : s.toCharArray()){if(Character.isLetter(temp)){ans.append(stack.pop());}else{ans.append(temp);}}return ans.toString();}
}

反轉字符串中的單詞

描述 :

給你一個字符串 s ,請你反轉字符串中 單詞 的順序。

單詞 是由非空格字符組成的字符串。s 中使用至少一個空格將字符串中的 單詞 分隔開。

返回 單詞 順序顛倒且 單詞 之間用單個空格連接的結果字符串

題目 :

LeetCode 151. 反轉字符串中的單詞 :

反轉字符串中的單詞

在這里插入圖片描述
分析 :

我們可以借助 spilt 函數來分割單詞 , 再用 可變字符串 添加單詞 .

解析 :

class Solution {public String reverseWords(String s) {String[] s1 = s.split(" ");StringBuilder ans = new StringBuilder();for (int i= s1.length - 1; i >= 0 ;i--){if(s1[i] != ""){ans.append(s1[i]).append(" ");}}return ans.toString().trim();    }
}

這期就到這里 , 下期見!

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

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

相關文章

webshell之擴展免殺

由于很多企業為了防止源碼泄露&#xff0c;都會使用加密擴展將代碼進行加密&#xff0c;那么我們就可以就將計就計&#xff0c;將webshell也利用擴展加密&#xff0c;將特征消除&#xff0c;從而達到免殺的效果 1.php-beast 擴展地址 下載dll&#xff0c;并添加至ext中 在php…

優化數據分析——理解與運用各類指標

寫在開頭 數據分析在當今信息時代扮演著至關重要的角色&#xff0c;而指標則是我們理解數據、揭示模式、支持決策的關鍵工具。本文將深入討論各類指標的應用場景和解讀方法&#xff0c;以幫助更全面、深入地理解數據。 1. 中心趨勢指標 1.1 均值&#xff1a;更深層次的理解 …

MySQL中自增id用完怎么辦?

MySQL中自增id用完怎么辦&#xff1f; MySQL里有很多自增的id&#xff0c;每個自增id都是定義了初始值&#xff0c;然后不停地往上加步長。雖然自然數是沒有上限的&#xff0c;但是在計算機里&#xff0c;只要定義了表示這個數的字節長度&#xff0c;那它就有上限。比如&#…

【2023持續更新】網絡安全工程師常用工具集合

文章目錄 SQL注入檢測 SQL注入檢測 https://github.com/r0oth3x49/ghauri

python數據結構與算法-15_堆與堆排序

堆(heap) 前面我們講了兩種使用分治和遞歸解決排序問題的歸并排序和快速排序&#xff0c;中間又穿插了一把樹和二叉樹&#xff0c; 本章我們開始介紹另一種有用的數據結構堆(heap)&#xff0c; 以及借助堆來實現的堆排序&#xff0c;相比前兩種排序算法要稍難實現一些。 最后我…

Linux開發工具(含gdb調試教程)

文章目錄 Linux開發工具&#xff08;含gdb調試教程&#xff09;1、Linux 軟件包管理器 yum2、Linux開發工具2.1、Linux編輯器 -- vim的使用2.1.1、vim的基本概念2.1.2、vim的基本操作2.1.3、vim正常模式命令集2.1.4、vim末行模式命令集 2.2、vim簡單配置 3、Linux編譯器 -- gcc…

HIVE SQL取整函數匯總

目錄 int()round(double a)round(double a,int d)floor()ceil() int() 向零取整&#xff0c;即向接近零的方向取整。 int(5.6)輸出&#xff1a;5 int(-5.6)輸出&#xff1a;-5 round(double a) 四舍五入取整 select round(5.6)輸出&#xff1a;6 select round(-5.6)輸出&…

關于前端處理后端輪詢的操作 (總結)

使用場景&#xff1a;前端首次發起請求獲取數據&#xff0c;若失敗則每隔1s發起一次知道成功獲取數據為止解決方案&#xff1a; 使用輪詢操作&#xff0c;涉及定時器的使用和關閉 &#xff08;使用vue2代碼為例) data() {return {pollingResult_en: null, // 處理輪詢結果bizI…

redis之cluster集群

1、redis-cluster集群&#xff1a;redis3.0引入的分布式存儲方案 2、集群&#xff1a;由多個node節點組成&#xff0c;redis數據分布在這些節點之中 &#xff08;1&#xff09;在集群之中也分主節點和從節點 &#xff08;2&#xff09;自帶哨兵模式 3、redis-cluster集群的…

騰訊云 小程序 SDK對象存儲 COS使用記錄,原生小程序寫法。

最近做了一個項目&#xff0c;需求是上傳文檔&#xff0c;文檔類型多種&#xff0c;圖片&#xff0c;視頻&#xff0c;文件&#xff0c;doc,xls,zip,txt 等等,而且文檔類型可能是大文件&#xff0c;可能得上百兆&#xff0c;甚至超過1G。 騰訊云文檔地址&#xff1a;https://c…

Java接口自動化測試系列[V1.0.0][概述]

基礎知識 在TCP/IP中&#xff0c;HTTP屬于傳輸層協議&#xff0c;該協議采用的是Request-Response的模式&#xff0c;且該協議是無狀態的&#xff0c;也就是后續如果要用到前面的信息必須重新請求重新獲取&#xff1b;HTTP通過SSL/TSL加密成為HTTPS&#xff0c;與HTTP相比HTTP…

PC端頁面進去先出現加載效果

自定義指令v-loading&#xff0c;只需要綁定Boolean即可 v-loading“loading” <el-table :data"list" border style"width: 100%" v-loading"loading"><el-table-column align"center" label"序號" width"5…

開發板啟動進入系統以后再掛載 NFS 文件系統, 這里的NFS文件系統是根據正點原子教程制作的ubuntu_rootfs

如果是想開發板啟動進入系統以后再掛載 NFS 文件系統&#xff0c;開發板啟動進入文件系統&#xff0c;開發板和 ubuntu 能互相 ping 通&#xff0c;在開發板文件系統下新建一個目錄 you&#xff0c;然后執行如下指令進行掛載&#xff1a; mkdir mi mount -t nfs -o nolock,nfsv…

Hive日志默認存儲在什么位置?

在hive-log4j.properties配置文件中&#xff0c;有這么一段配置信息 hive.log.thresholdALL hive.root.loggerWARN,DRFA hive.log.dir${java.io.tmpdir}/${user.name} hive.log.filehive.log hive.log.dir就是日志存儲在目錄/tmp/${user.name}(當前用戶名)/下 而hive.log就是h…

日本it就職培訓機構,日本IT行業的三種類型

日本的IT產業一直保持增長趨勢&#xff0c;市場規模逐年增加&#xff0c;在日本所有產業中占據很大比例。由于日本老齡化嚴重&#xff0c;日本國內的IT人才無法滿足需求&#xff0c;為緩解這一問題&#xff0c;日本將引進外國優秀IT人才作為一項國策&#xff0c;日本IT行業不僅…

Leetcode1410. HTML 實體解析器

Every day a Leetcode 題目來源&#xff1a;1410. HTML 實體解析器 解法1&#xff1a;模擬 遍歷字符串 text&#xff0c;每次遇到 ’&‘&#xff0c;就判斷以下情況&#xff1a; 雙引號&#xff1a;字符實體為 &quot; &#xff0c;對應的字符是 " 。單引號&a…

振弦式土壓力計在巖土工程安全監測應用的方案

振弦式土壓力計在巖土工程安全監測應用的方案 振弦式土壓力計是一種常見的土壓力測量儀器&#xff0c;其原理是利用振弦在土中傳播的速度與土的應力狀態有關的特點測量土壓力。在巖土工程安全監測中&#xff0c;振弦式土壓力計可以應用于以下方面&#xff1a; 1. 地下連續墻和…

某資產管理機構: IAST提升安全水平,保障資產管理水平穩健增長

某資產管理機構是國內首批成立的資產管理公司之一&#xff0c;堅持“科技金融”、“數字金融”戰略&#xff0c;以客戶為中心&#xff0c;聚焦用戶體驗與業務協同&#xff0c;著力推進營銷數字化進程和大數據平臺建設&#xff0c;助力資產管理高質量發展。 數字科技推動工作效率…

面試題:Java 對象不使用時,為什么要賦值 null ?

文章目錄 前言示例代碼運行時棧典型的運行時棧Java的棧優化提醒 GC一瞥提醒 JVM的“BUG”總結 前言 最近&#xff0c;許多Java開發者都在討論說&#xff0c;“不使用的對象應手動賦值為null“ 這句話&#xff0c;而且好多開發者一直信奉著這句話&#xff1b;問其原因&#xff…

【Flask使用】全知識md文檔,4大部分60頁第3篇:Flask模板使用和案例

本文的主要內容&#xff1a;flask視圖&路由、虛擬環境安裝、路由各種定義、狀態保持、cookie、session、模板基本使用、過濾器&自定義過濾器、模板代碼復用&#xff1a;宏、繼承/包含、模板中特有變量和函數、Flask-WTF 表單、CSRF、數據庫操作、ORM、Flask-SQLAlchemy…