string OJ題

下面分享一下string做題心得

????????1.?明白字符串中存儲的數字為'0' '8'? '9'與0 8 9?完全不同,字符'0'其實在串中存儲的是48,要有意識的轉化。字符串中如果存數字8,意味著存了BS(退格)

????????例如1: 算出結果為5,存入使用s+=(5+'0')

? ? ? ? 例如2:讀取數據 int num1 = s[i]-'0'

? ? ? ? 2.?要熟練運用 s+=? 或者 reserve(s1.begin() ,s1.end())或者是s1 = s2與s1.assign(s2)作用相同。

? ? ? ? 3.?遇到不熟悉的接口一定要去查一查。

????????下面為ascii表

????????后面分享了3道oj題

43. 字符串相乘

檢驗是否是回文串

字符串轉整形字符

檢驗是否是回文串第一題答案

class Solution {
public:string addStrings(string num1, string num2) {int carry=0;string s3;int end1=num1.size()-1;int end2=num2.size()-1;while(end1>=0 ||end2>=0){int x1 = end1 >= 0 ? num1[end1--]-'0' : 0;int x2 = end2 >= 0 ? num2[end2--]-'0' : 0;int end=x1+x2+carry;carry=end/10;end=end%10;s3+=(end+'0');}if(carry==1){s3+='1';}reverse(s3.begin(),s3.end());return s3;}string multiply(string num1, string num2){string return_string("0");if(num1.size()==1&&num1[0]=='0'||num2.size()==1&&num2[0]=='0')return return_string;int end1 = num1.size() - 1;int end2 = num2.size() - 1;int carry = 0;int count[num2.size()+2];int num = 0;for (int i = 1; i <= num2.size(); ++i){string s;int t=i;while(t>1){s+='0';--t;}int numend1 = end1;while (numend1 >= 0){int x1 = num1[numend1--] - '0';int x2 = num2[end2] - '0';int end = x1 * x2 + carry;carry = end / 10;end = end % 10;s += (end+'0');}if (carry > 0){s += (carry+'0');carry=0;}end2--;reverse(s.begin(), s.end());string s3= addStrings(s,return_string);return_string.assign(s3);}return  return_string;}
};

第二題答案

class Solution {
public:bool ischar(char x){if(x>='0'&&x<='9'||x>='A'&&x<='Z'||x>='a'&&x<='z'){return true;}return false;}bool isPalindrome(string s) {for(auto& e:s){if(e>='A'&&e<='Z'){e+=32;}}int begin=0;int end=s.size()-1;while(begin<end){while(begin<end && !ischar(s[begin])){++begin;}while(begin<end && !ischar(s[end])){--end;}if(s[begin]!= s[end]){return false;}else{++begin;--end;}}return true;}
};

第三題答案

class Solution {
public:int myAtoi(string str) {bool sign = true;   //默認為正數// 跳過開頭可能存在的空格int i = 0;while(i < str.size() && str[i] == ' ') {i++;}//接著判斷首個字符是否為正負號if(str[i] == '-') {sign = false;  // 該字符串為負數,移至下一個字符接著判斷i++;          }else if(str[i] == '+')  // 字符串為正數,sign已經默認為true,直接移動到下一位即可i++;   //下面開始對非正負符號位進行判斷if(str[i] < '0' || str[i] > '9') // 正常數字第一位不能是0,必須為1~9之間的數字,否則就是非法數字return 0;  int res = 0;   //這里res用的int型,需要更加仔細考慮邊界情況,但如果用long的話可以省去一些麻煩int num = 0; int border = INT_MAX / 10;  // 用來驗證計算結果是否溢出int范圍的數據while(i < str.size()){// 遇到非數字字符,則返回已經計算的res結果if(str[i] < '0' || str[i] > '9') break;// 注意這句話要放在字符轉換前,因為需要驗證的位數比實際值的位數要少一位, 這里比較巧妙的地方在于// 1. 用低于int型數據長度一位的數據border判斷了超過int型數據長度的值 // 2. 將超過最大值和低于最小值的情況都包括了if(res > border || res == border && str[i] > '7')  return sign == true ? INT_MAX : INT_MIN;//開始對數字字符進行轉換num = str[i] - '0';res = res * 10 + num;i++;}//最后結果根據符號添加正負號return sign == true ? res : -res;}
};

看到這里啦,你應該已經有了不少收獲了

這個博客如果對你有幫助,給博主一個免費的點贊就是最大的幫助?

歡迎各位點贊,收藏和關注哦?

如果有疑問或有不同見解,歡迎在評論區留言哦?

后續我會一直分享雙一流211西北大學軟件(C,數據結構,C++,Linux,MySQL)的學習干貨以及重要代碼的分享

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

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

相關文章

MySQL 用戶變量賦值、查詢賦值、滾動賦值

在MySQL中&#xff0c;用戶變量是一種在會話級別存儲和重用值的方式&#xff0c;它們以符號開頭。用戶變量可以在查詢中用來存儲和傳遞數據&#xff0c;增強SQL腳本的功能性。 定義和賦值用戶變量用戶變量可以直接在查詢中定義并賦值&#xff0c;不需要預先聲明。賦值可以使用S…

springboot+mybatis+druid 配置單實例多數據源

第一步&#xff1a;pom中添加依賴 <!--mybatis多數據源--><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>2.5.6</version></dependency> 第…

Selenium 自動化測試工具<2>(Selenium 常用API的使用方法)

文章目錄 瀏覽器操作瀏覽器最大化設置瀏覽器的大小瀏覽器的前進和后退操作瀏覽器滾動條 鍵盤事件單個按鍵用法鍵盤組合鍵用法 鼠標事件不同窗口搜索定位一組元素定位多層框架下拉框定位alert、confirm、prompt 的處理上傳文件操作自動截屏 繼上一篇文章對 Selenium API 的使用&…

RT-DRET在實時目標檢測上超越YOLO8

導讀 目標檢測作為計算機視覺的核心任務之一&#xff0c;其研究已經從基于CNN的架構發展到基于Transformer的架構&#xff0c;如DETR&#xff0c;后者通過簡化流程實現端到端檢測&#xff0c;消除了手工設計的組件。盡管如此&#xff0c;DETR的高計算成本限制了其在實時目標檢測…

搭建屬于自己的 Git 倉庫:GitLab

搭建屬于自己的 Git 倉庫&#xff1a;使用 GitLab 文章目錄 搭建屬于自己的 Git 倉庫&#xff1a;使用 GitLab什么是 GitLab&#xff1f;準備工作安裝 Docker使用Docker Compose 快速構建GitLab1、從docker compose快速搭建GitLab2、部署到服務器并訪問3、瀏覽器訪問 在現代軟件…

【數據結構】------C語言實現二叉樹

作者主頁&#xff1a;作者主頁 數據結構專欄&#xff1a;數據結構 創作時間 &#xff1a;2024年5月20日 一、二叉樹的定義 二叉樹(Binary Tree) 是由n個結點構成的有限集(n≥0)&#xff0c;n0時為空樹&#xff0c;n>0時為非空樹。 對于非空樹&#xff1a; 有且僅有一個根…

接口自動化核心模塊Requests詳解(一)

一、Requests簡介 Python的Requests庫是一個功能強大且簡潔的庫&#xff0c;提供了簡單易用的接口來處理HTTP請求。 二、Requests的使用步驟 2.1 安裝Requests庫 在終端命令行&#xff0c;使用pip命令進行安裝&#xff0c; pip install requests 2.2 Requests庫常用方法…

騰訊Java社招面試題真題,最新面試題

Java中synchronized和ReentrantLock有什么區別&#xff1f; 1、鎖的實現方式不同&#xff1a; synchronized是JVM層面的鎖&#xff0c;主要依賴于監視器對象&#xff08;monitor&#xff09;實現。ReentrantLock是JDK層面的鎖&#xff0c;通過Java代碼實現&#xff0c;提供了更…

語雀——云知識庫/筆記

對于日常進行學習/創作或是記錄學習、工作內容與心得的群體來說&#xff0c;能夠及時同步的云筆記應用有著廣泛的應用場景。近期&#xff0c;我也探索了許多款不同的軟件應用&#xff0c;今天來分享一款很有特點的應用——語雀。 語雀&#xff0c;為每一個人提供優秀的文檔和知…

1.6 什么是程序-編譯與調試

目錄 1 程序的作用 2 新建項目及編譯運行 2.1 新建項目 2.2 HelloWorld 程序說明 2.3 printf 打印輸出 2.4 注釋 3 程序的編譯過程及項目位置 4 斷點及調試窗口設置 5 學習C語言后的境界 1 程序的作用 如下圖所示&#xff0c;我們編寫了一個可以做加法的程序&#xf…

vue3 vite項目配置了proxy代理情況下查看真實的接口調用地址

vite配置了proxy代理情況下如何查看真實的接口調用地址? 使用vite進行代理 在vite.config.ts配置了代理 在瀏覽器查看請求頭和響應頭發現只有代理前的url&#xff0c;沒有顯示代理后的路徑 然后發現一個bypass函數&#xff0c;但是此函數只能修改res響應頭的數據&#xff0…

C語言基礎-鏈表和數組的區別

在C語言中&#xff0c;鏈表&#xff08;Linked List&#xff09;和數組&#xff08;Array&#xff09;是兩種常用的數據結構&#xff0c;它們在數據存儲和訪問上各有其獨特的作用和優勢。以下是對這兩種數據結構的作用以及它們之間的不同點的詳細說明&#xff1a; 數組&#x…

Dockerfile文件詳細介紹

前言 Dockerfile是一個文本文件&#xff0c;包含了用于構建Docker鏡像的所有命令和說明。它定義了容器的運行環境、依賴以及啟動方式&#xff0c;是創建Docker鏡像的核心部分。 由于制作鏡像的過程中&#xff0c;需要逐層處理和打包&#xff0c;比較復雜&#xff0c;所以Docke…

實戰復盤:內網環境滲透ms-SQL數據庫

滲透環境&#xff1a;如下圖所示&#xff0c;web服務器、ms-SQL服務器、PC客戶端在同一個網絡中&#xff0c;彼此之間&#xff0c;沒有路由器或防火墻的隔離&#xff0c;這是一種危險的網絡結構&#xff0c;入侵ms-SQL服務器&#xff0c;非常容易。&#xff08;實戰中&#xff…

整理了10個靠譜且熱門的賺錢軟件,適合普通人長期做的賺錢副業

作為一名普通的上班族&#xff0c;我們每天都在辛勤工作&#xff0c;但工資的增長速度卻如同蝸牛般緩慢。不過&#xff0c;別擔心&#xff0c;信息時代總是帶給我們無盡的驚喜&#xff01;今天&#xff0c;我將為大家推薦一些賺錢的寶藏軟件&#xff0c;讓你在閑暇之余輕松實現…

Java-Zookeeper

zookeeper是什么 一個分布式、開源的分布式應用程序協調服務&#xff0c;具有配置維護、域名服務、分布式同步、組服務等 zookeeper有哪些功能 功能簡介集群管理監控節點狀態、運行請求等主節點選舉主節點掛掉之后會執行新主選舉分布式鎖zookeeper提供兩種鎖&#xff1a;獨占…

IEDA常用快捷鍵(后續更新ing)

1. 快速生成語句 1.快速生成main()方法 psvm或者main回車 2.快速生成輸出語句 sout,回車 3.快速生成for循環 fori或者itar,回車 2.快捷鍵 含義操作查找文本CtrlF替換文本CtrlR單行注釋Ctrl/多行注釋CtrlShift/格式化CtrlAltL復制當前內容至下一行CtrlD補全代碼Alt/快速生成…

RAGs:自動化評估 RAG 示例代碼

文章目錄 原理忠實度&#xff08;Faithfulness&#xff09;答案相關性&#xff08;Answer Relevance&#xff09;上下文相關性&#xff08;Context Relevance&#xff09;上下文召回率&#xff08;Context Recall&#xff09;答案正確性&#xff08;Answer Correctness&#xf…

C# 機構仿真實例

1、實現連桿帶動滑塊運動 一個連桿旋轉帶動另一個連桿&#xff0c;另一個連桿拖動滑塊&#xff0c;點擊“開始”按鈕開始運動&#xff0c;再點擊按鈕&#xff0c;則停止運動。 2、實現程序 #region 機構仿真Image image null;Timer timer new Timer();int width 0;int heig…

一千題,No.0027(Phone Desktop)

描述 Little Rosie has a phone with a desktop (or launcher, as it is also called). The desktop can consist of several screens. Each screen is represented as a grid of size 53, i.e., five rows and three columns. There are x applications with an icon size o…