代碼隨想錄算法訓練營day6(字符串)

華子目錄

  • 反轉字符串
    • 思路
  • 反轉字符串II
    • 思路
  • 替換數字
    • 思路

反轉字符串

  • https://leetcode.cn/problems/reverse-string/

在這里插入圖片描述

思路

  • 使用雙指針,初始化時,left指向下標0的位置right指向最后一個元素的下標
  • while left<right時,交換nums[left]nums[right],直到結束整個循環
class Solution:def reverseString(self, s: List[str]) -> None:"""Do not return anything, modify s in-place instead."""left, right = 0, len(s)-1while left<right:s[left],s[right] = s[right], s[left]left+=1right-=1

反轉字符串II

  • https://leetcode.cn/problems/reverse-string-ii/description/

在這里插入圖片描述

思路

  • 先定義一個反轉字符串函數reverse,并傳入一個參數返回一個已經反轉了的字符串
  • 再以2k步長遍歷整個字符串每遍歷一次前k個字符串nums[cur:cur+k]傳遞給上面的函數,接受返回的字符串res=reverse(text),并修改原來的nums[cur:cur+k]=res
#寫法1
class Solution:def reverseStr(self, s: str, k: int) -> str:def reverse(text):left, right = 0, len(text)-1while left<right:text[left],text[right] = text[right],text[left]left+=1right-=1return textarr = list(s)for cur in range(0,len(s),2*k):res = reverse(arr[cur:cur+k])arr[cur:cur+k] = resreturn "".join(arr)
#寫法2
class Solution:def reverse(self,text):left, right = 0, len(text)-1while left<right:text[left],text[right]=text[right],text[left]left+=1right-=1return textdef reverseStr(self, s: str, k: int) -> str:arr = list(s)for cur in range(0,len(s),2*k):res = self.reverse(arr[cur:cur+k])arr[cur:cur+k]=resreturn "".join(arr)

替換數字

  • https://kamacoder.com/problempage.php?pid=1064

在這里插入圖片描述

思路

  • s轉化為列表lst,遍歷列表lst,如果lst[i]整數,則lst[i] = 'number',否則i++
  • 遍歷完之后,將列表lst轉化為字符串(使用''.join(lst)
class Solution:def __init__(self):self.t = 'number'self.tmp = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']def replace(self):s = input()lst = list(s)for i in range(len(s)):if lst[i] in self.tmp:lst[i] = self.tprint(''.join(lst))obj = Solution()
obj.replace()

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

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

相關文章

Oracle 19c新特性:OCP認證考試與職業躍遷的關鍵?

在數字化轉型的浪潮中&#xff0c;Oracle 19c作為數據庫領域的旗艦版本&#xff0c;不僅承載著技術革新的使命&#xff0c;更成為IT從業者職業進階的“黃金跳板”。無論是企業級應用的高可用性需求&#xff0c;還是云原生架構的快速迭代&#xff0c;Oracle 19c的智能化與多模型…

【MySQL數據庫入門到精通】

文章目錄 一、SQL分類二、DDL-數據庫操作1.查詢2.創建數據庫3.刪除數據庫4.使用數據庫 三、DDL-表操作1.查詢 一、SQL分類 根據功能主要分為DDL DML DQL DCL DDL:Date Definition Language數據定義語言&#xff1a;定義數據庫&#xff0c;表和字段 DML:Date Manipulatin Lan…

MCP服務端開發

MCP(Memory, Context, Planning)是一種增強AI系統認知能力的框架,通過整合記憶管理、上下文理解和規劃能力,可以顯著提升AI系統的表現。下面我將為您開發一個完整的MCP服務端。 概述 我們將使用Python開發一個基于FastAPI的MCP服務端,包含以下核心組件: Memory Manager…

前端:uniapp中uni.pageScrollTo方法與元素的overflow-y:auto之間的關聯

在uniapp中&#xff0c;uni.pageScrollTo方法與元素的overflow-y:auto屬性之間存在以下關聯和差異&#xff1a; 一、功能定位差異 ?uni.pageScrollTo? 屬于?頁面級滾動控制?&#xff0c;作用于整個頁面容器?34。要求頁面內容高度必須超過屏幕高度&#xff0c;且由根元素下…

基礎知識-指針

1、指針的基本概念 1.1 什么是指針 1.1.1 指針的定義 指針是一種特殊的變量&#xff0c;與普通變量存儲具體數據不同&#xff0c;它存儲的是內存地址。在計算機程序運行時&#xff0c;數據都被存放在內存中&#xff0c;而指針就像是指向這些數據存放位置的 “路標”。通過指針…

VS遠程Linux_CMake項目搭建

VS遠程Linux CMake項目搭建 準備工作 遠程計算機上安裝 gcc: 一個開源的編譯器集合, GCC支持多種編程語言的編譯&#xff0c;包括C、C、Objective-C、Fortran、Ada、Go、D和Javagdb: GDB&#xff08;GNU Debugger&#xff09;是一個功能強大的調試工具&#xff0c;主要用于調…

替代升級VMware | 云軸科技ZStack構建山西證券一云多芯云平臺

通過云軸科技ZStack Cloud云平臺&#xff0c;山西證券打造了敏捷部署、簡單運維的云平臺&#xff0c;不僅兼容x86、海光、鯤鵬三種異構服務器實現一云多芯&#xff0c;還通過云平臺虛擬化納管模塊納管原有VMware虛擬化資源&#xff0c;并對接第三方集中式存儲&#xff0c;在保護…

MATLAB - 模型預測控制器(MPC)的穩定性和魯棒性問題

系列文章目錄 目錄 系列文章目錄 前言 一、被控對象模型 二、初始控制器設計 三、改進初始設計 五、查看軟約束 七、參考 前言 您可以檢查模型預測控制器設計是否存在潛在的穩定性和魯棒性問題。具體操作如下 在命令行中&#xff0c;使用審查功能。在 MPC Designer 中&a…

《GPT-4.1深度解析:AI進化新標桿,如何重塑行業未來?》

一、GPT-4.1:AI 領域的 “全能戰士” 降臨 1.1 發布背景與戰略意義 在 OpenAI 的技術迭代版圖中,GPT-4.1 被賦予了 “承前啟后” 的關鍵角色。它不僅是 GPT-4o 的全面升級版,更被視為向 GPT-5 過渡的重要橋梁。2025 年 4 月 15 日的發布會上,OpenAI 宣布 GPT-4.1 系列模型…

MySQL+Redis實戰教程:從Docker安裝部署到自動化備份與數據恢復20250418

MySQLRedis實戰教程&#xff1a;從Docker安裝部署到自動化備份與數據恢復 一、前言 在企業應用中&#xff0c;對MySQL和Redis運維的要求越來越高&#xff1a; 不能僅是啟動就算部署運行穩定、隔離、訪問控制、備份恢復、安全可靠&#xff0c;才是 企業級的基本功能 本文將手…

Linux系統編程之守護進程與調試技術

在Linux系統編程中&#xff0c;守護進程&#xff08;Daemon&#xff09;是非常重要的一種概念。它允許程序在后臺運行&#xff0c;不受用戶交互的影響&#xff0c;并且可以持續長時間地運行。通過了解如何創建和管理守護進程&#xff0c;我們能夠開發出更加穩定、高效的系統應用…

Linux中的管道

管道的概念 管道是一種進程間通信的方式。 管道是一種半雙工通信機制&#xff0c;數據只能讀或寫&#xff0c;如果要讀寫同時進行就要創建兩個管道 管道的類型 1、匿名管道PIPE&#xff1a;通常在親緣進程中使用&#xff08;兄弟、父子&#xff09; 函數參考&#xff1a;匿名管…

深度學習2.4 微積分

2.4.1 導數和微分 2.4.2 偏導數 ![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/17227e00adb14472902baba4da675aed.png 2.4.3 梯度 具體證明&#xff0c;矩陣-向量積

《軟件設計師》復習筆記(11.3)——需求獲取、分析、定義、驗證、管理

目錄 一、軟件需求概述 真題示例&#xff1a; 二、質量功能部署&#xff08;QFD&#xff09; 三、需求開發流程 需求獲取 需求分析 需求定義&#xff08;SRS&#xff09; 需求驗證 真題示例&#xff1a; 四、需求管理 真題示例&#xff1a; 一、軟件需求概述 軟件…

Spring Boot 依賴注入與Bean管理:JavaConfig如何取代XML?

大家好呀&#xff01;今天我們來聊一個超級實用的技術話題 —— Spring Boot 中的依賴注入和Bean管理&#xff0c;特別是JavaConfig是如何一步步取代XML配置的。我知道很多小伙伴一聽到"依賴注入"、"Bean管理"這些詞就頭大&#xff0c;別擔心&#xff01;我…

全志H5,NanopiKP1lus移植QT5.12記錄

移植步驟 機器環境下載QT5.12.0源碼安裝交叉編譯器修改qmake.conf文件配置編譯選項qt5的configure選項說明基本配置選項編譯器和鏈接器選項功能模塊配置第三方庫集成注意事項 配置過程報錯解決配置完成編譯過程報錯解決編譯完成將arm-qt文件夾傳送到開發板配置板子環境變量運行…

STM32單片機C語言

1、stdint.h簡介 stdint.h 是從 C99 中引進的一個標準 C 庫的文件 路徑&#xff1a;D:\MDK5.34\ARM\ARMCC\include 大家都統一使用一樣的標準&#xff0c;這樣方便移植 配置MDK支持C99 位操作 如何給寄存器某個值賦值 舉個例子&#xff1a;uint32_t temp 0; 宏定義 帶參…

【專題刷題】雙指針(四):最接近的三數之和,接雨水

&#x1f4dd;前言說明&#xff1a; 本專欄主要記錄本人的基礎算法學習以及LeetCode刷題記錄&#xff0c;按專題劃分每題主要記錄&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代碼&#xff1b;&#xff08;2&#xff09;優質解法 優質代碼&#xff1b;&#xff…

chili3d調試筆記3 加入c++ 大模型對話方法 cmakelists精讀

加入 #include <emscripten/bind.h> #include <emscripten/val.h> #include <nlohmann/json.hpp> 怎么加包 函數直接用emscripten::function&#xff0c;如&#xff1a; emscripten::function("send_to_llm", &send_to_llm); set (CMAKE_C…

[Redis]1-高效的數據結構P2-Set

按照慣例&#xff0c;先丟一個官網文檔鏈接。 上篇我們已經了解了高效的數據結構P1-String與Hash。 這篇&#xff0c;我們繼續來了解Redis的 Set 與 Sorted set。 目錄 有序集合 Sorted set底層實現 集合 Set總結資料引用 有序集合 Sorted set Redis 有序集合是一組唯一的字符…