C++基礎(③反轉字符串(字符串 + 雙指針))

題目描述:編寫一個函數,將輸入的字符串反轉過來(要求原地修改字符串,不使用額外空間)。
示例:輸入 s = ["h","e","l","l","o"] → 輸出 ["o","l","l","e","h"]。
思路提示:

用兩個指針分別指向字符串的開頭(left=0)和結尾(right = s.size()-1),交換兩個指針指向的字符,然后 left++、right--,直到 left >= right。
注意:C++ 中字符串是可變的,直接通過下標修改即可。

代碼

#include <iostream>
#include <vector>using namespace std;// 原地反轉字符串
void reverseString(vector<char>& s) {int left = 0;int right = static_cast<int>(s.size()) - 1;while (left < right) {swap(s[left], s[right]);++left;--right;}
}// 測試
int main() {vector<char> s = {'h', 'e', 'l', 'l', 'o'};reverseString(s);for (char c : s) cout << c << ' ';return 0;
}

swap 幫你交換,static_cast 安全轉型,vector 是動態數組,& 避免拷貝,范圍 for 讓遍歷寫法極簡。

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

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

相關文章

vue的動態組件keep-alive實現組件緩存和狀態保留

在 Vue.js 中&#xff0c;動態組件結合 keep-alive 是實現組件緩存和狀態保留的重要技術方案。以下是詳細解析&#xff1a;一、動態組件基礎 通過 <component :is> 實現組件動態切換&#xff1a; <component :is"currentComponent"></component>cu…

安裝Docker Desktop報錯WSL needs updating

&#xff08;1&#xff09;首先觀察下面是否勾選&#xff08;2&#xff09;說明已經啟動了&#xff0c;但是需要更新&#xff0c;cmd運行下面代碼&#xff0c;記得需要開一下代理&#xff0c;可能會有點慢上面就算好了&#xff08;3&#xff09;點擊restart這樣就代表成功了

??舊衣回收小程序|線上模式新升級

還在用老舊的傳統方式做舊衣回收&#xff1f;別out了&#xff01;線下回收箱成本高、維護難、用戶參與感弱&#xff1f;是時候用線上小程序打開全新局面了?&#x1f4a8;線上小程序 vs 傳統線下回收? 便捷性突破&#xff1a;線下&#xff1a;用戶需親自送至固定回收點&#x…

CD71.【C++ Dev】二叉樹的三種非遞歸遍歷方式

目錄 1.知識回顧 2.前序遍歷 分析 總結入棧的幾種可能 循環的條件 代碼 提交結果 3.中序遍歷 分析 代碼 提交結果 3.★后序遍歷 分析 問題:如何確定是第一次訪問到棧的元素還是第二次訪問到棧中的元素? 方法1:使用填充的內存(依賴于架構) 判斷計算機使用的架構…

音視頻學習(五十九):H264中的SPS

在 H.264 (也稱為 AVC, Advanced Video Coding) 視頻編碼標準中&#xff0c;SPS (Sequence Parameter Set) 是一個至關重要的 NALU (Network Abstraction Layer Unit) 類型&#xff0c;它承載著整個視頻序列共有的全局性配置信息。你可以把它理解為視頻文件的“基因”&#xff…

linux實時性研究

Linux 實時性研究旨在提升 Linux 系統對外部事件的響應速度和確定性,使其能夠滿足實時應用的需求。以下是關于 Linux 實時性研究的一些關鍵內容: Linux 實時性不足的原因 中斷優先級問題:在標準 Linux 內核中,中斷具有最高優先級,包括軟中斷,這使得實時任務的優先級得不到…

Java-面試八股文-Mysql篇

MySQL篇 1、Select 語句完整的執行順序 難度系數&#xff1a;?&#x1f4cc; SQL SELECT 語句書寫順序&#xff08;開發者寫的順序&#xff09; SELECT ... FROM ... JOIN ... WHERE ... GROUP BY ... HAVING ... ORDER BY ... LIMIT ...&#x1f4cc; 實際執行順序&#…

多代理系統架構:Supervisor 與 Swarm 架構詳解

多代理&#xff08;Multi-Agent&#xff09;系統正成為構建復雜 AI 應用的重要范式。本文將深入剖析兩種熱門的多代理架構模式——Supervisor&#xff08;主管模式&#xff09;與 Swarm&#xff08;群智模式&#xff09;&#xff0c;揭示它們的執行流程、適用場景及實現細節&am…

【深度學習】思維鏈(Chain of Thought, CoT):提升大模型推理能力的關鍵技術

思維鏈&#xff08;Chain of Thought, CoT&#xff09;&#xff1a;提升大模型推理能力的關鍵技術 文章目錄思維鏈&#xff08;Chain of Thought, CoT&#xff09;&#xff1a;提升大模型推理能力的關鍵技術1 什么是思維鏈&#xff08;Chain of Thought, CoT&#xff09;&#…

GitHub 宕機自救指南:打造韌性開發體系

一、引言1.1 GitHub 宕機事件回顧與影響剖析在軟件開發的廣袤版圖中&#xff0c;GitHub 宛如一座熠熠生輝的燈塔&#xff0c;為全球超 1 億開發者照亮前行之路&#xff0c;其重要性不言而喻。它集代碼托管、版本控制、協作開發以及項目管理等核心功能于一身&#xff0c;是無數開…

移動端網頁調試實戰,iOS WebKit Debug Proxy 的應用與替代方案

在移動端開發中&#xff0c;iOS WebView 的調試一直是個難題。不同于 Android 可以依賴 Chrome DevTools 和 ADB&#xff0c;iOS 的 WKWebView 只能通過 Safari 開發者工具調試&#xff0c;而這需要 Mac 環境和設備直連。為了彌補限制&#xff0c;社區出現了一個常用工具 —— …

煥新升級,Sermant 2.0.0 release版本重磅發布!

Sermant社區在6月底正式發布了2.0.0 release版本&#xff0c;這次更新中&#xff0c;Sermant進行了項目所屬組織調整并新增了基于xDS協議的服務發現能力、預過濾啟動加速機制、Sermant Backend的配置管理能力。所屬組織調整使得Sermant淡化廠商屬性&#xff0c;以全新的姿態更好…

sqli-labs通關筆記-第28a關GET字符注入(多重關鍵字過濾繞過 腳本法)

目錄 一、sqlmap之tamper腳本 二、源碼分析 1、代碼審計 2、SQL安全性分析 三、滲透實戰 1、進入靶場 2、tamper腳本 3、sqlmap滲透 SQLI-LABS 是一個專門為學習和練習 SQL 注入技術而設計的開源靶場環境&#xff0c;本小節對第28a關Less 28a基于GET字符型的SQL注入關卡…

聯想打印機2268w安裝

聯想打印機2268w是支持無線打印的。在某度搜索&#xff0c;掀起蓋子長按開機鍵&#xff0c;成功初始化。之后按說明應該能用手機搜索到打印機的熱點&#xff0c;反復搜索都沒有出現。最后沒辦法&#xff0c;之后好用我自己的方法安裝。找了個筆記本&#xff0c;開機連接到wifi,…

【LeetCode】動態規劃——72.編輯距離、10.正則表達式匹配

LeetCode題目鏈接 https://leetcode.cn/problems/edit-distance/description/ https://leetcode.cn/problems/regular-expression-matching/description/ 題解 72.編輯距離 本題要定義為長度為i、長度為j的字符串的最少編輯次數&#xff0c;每次判斷字符的下標為i-1、j-1。dp[i…

[親測可用]Android studio配置國內鏡像源 Kotlin DSL (build.gradle.kts)

一、更改gradle下載鏡像Android studio項目需要下載和更新 Gradle 及其依賴。由于網絡環境&#xff0c;直接從 Gradle 官網下載可能會遇到速度慢或超時的問題。這里需要更換為使用國內的鏡像站點來加速下載。官網地址&#xff08;較慢&#xff09;&#xff1a;https://services…

《跳出“技術堆砌”陷阱,構建可演進的軟件系統》

很多團隊陷入了“技術焦慮式開發”—盲目追逐熱門框架&#xff0c;將“使用微服務”“引入云原生”“集成AI組件”當作架構先進的標簽&#xff0c;卻忽視了業務與技術的底層匹配邏輯。某互聯網團隊為了“彰顯技術實力”&#xff0c;在內部協同工具中強行接入機器學習推薦模塊&a…

賦能你的應用:英超實時數據接入終極指南(API vs. WebSocket)

在當今數據驅動的時代&#xff0c;為您的應用程序注入實時、準確的英超賽事數據&#xff0c;是提升用戶體驗、打造差異化競爭力的關鍵。無論是開發一款球迷必備的比分追蹤App&#xff0c;一個深度專業的賽事分析平臺&#xff0c;還是一個充滿互動性的夢幻足球游戲&#xff0c;首…

計算機網絡:(poll、epoll)

一、select的不足1. 最大監聽數受限&#xff1a;FD_SETSIZE 默認 1024&#xff08;Linux&#xff09;2. 每次調用需重置 fd_set&#xff1a;內核會修改集合&#xff0c;必須每次重新 FD_SET3. 用戶態與內核態拷貝開銷大4. 返回后仍需遍歷所有 fd 才能知道哪個就緒5. 效率隨 fd …

網絡編程之設置端口復用

首先來說一下為什么要設置端口復用&#xff0c;有些時候在調試服務器代碼時勢必會經常啟動或結束服務器進程&#xff0c;這樣就會出現當再次啟動服務器時有可能會出現端口綁定失敗的情況&#xff0c;造成這個情況的原因是由于你上次關閉服務器時有連接尚未斷開等等其他原因&…