算法通關村——不簡單的字符串轉換問題

1. 轉換成小寫字母

給你一個字符串 s ,將該字符串中的大寫字母轉換成相同的小寫字母,返回新的字符串。
轉換成小寫字母

1.1 利用ASCII

首先需要直到常見的ASCII值
a-z: 97-122
A-Z: 65-90
0-9: 48-57

只需要將這個字符串先轉換成字符,然后讓字符+32就是對應的小寫字符,然后將字符數組轉換成字符串。

   public String toLowerCase(String s) {char [] chars = s.toCharArray();for(int i=0;i<s.length();i++){if(chars[i] >= 65 && chars[i]<=90){chars[i] += 32;}}String str = new String(chars);return str;}

2. 字符串轉換整數 (atoi)

字符串轉換整數 (atoi)
請你來實現一個 myAtoi(string s) 函數,使其能將字符串轉換成一個 32 位有符號整數(類似 C/C++ 中的 atoi 函數)。

函數 myAtoi(string s) 的算法如下:

讀入字符串并丟棄無用的前導空格
檢查下一個字符(假設還未到字符末尾)為正還是負號,讀取該字符(如果有)。 確定最終結果是負數還是正數。 如果兩者都不存在,則假定結果為正。
讀入下一個字符,直到到達下一個非數字字符或到達輸入的結尾。字符串的其余部分將被忽略。
將前面步驟讀入的這些數字轉換為整數(即,“123” -> 123, “0032” -> 32)。如果沒有讀入數字,則整數為 0 。必要時更改符號(從步驟 2 開始)。
如果整數數超過 32 位有符號整數范圍 [?231, 231 ? 1] ,需要截斷這個整數,使其保持在這個范圍內。具體來說,小于 ?231 的整數應該被固定為 ?231 ,大于 231 ? 1 的整數應該被固定為 231 ? 1 。
返回整數作為最終結果。
注意:

本題中的空白字符只包括空格字符 ’ ’ 。
除前導空格或數字后的其余字符串外,請勿忽略 任何其他字符。

2.1

根據題目

  1. 傳遞的字符串需要先去除里面的空格
  2. 然后判斷數字的正負,這個可以采用一個標志來表示正負,
  3. 還需要判斷這個字符是不是數字,采用ASCII判斷
  4. 如果遇到的第一個字符不是數字,退出。
  5. 數字采用第一位*10+第二位數字
    public int myAtoi(String s) {int length = s.length();char [] chars = s.toCharArray();// 去除空格int index =0;while(index<length && chars[index] == ' '){index++;}// 遍歷完成if(length == index){return 0;}// 判斷正負int sign =1;char firstChar = chars[index];if(firstChar == '+'){index++;}else if(firstChar == '-'){index++;sign = -1;}// 轉換數字int res =0;while(index<length){char currentChar = chars[index];// 不合法if(currentChar >'9' || currentChar<'0'){break;}// 避免溢出if(res > Integer.MAX_VALUE/10 ||(res == Integer.MAX_VALUE / 10 && (currentChar - '0') > Integer.MAX_VALUE % 10)){return Integer.MAX_VALUE;}if(res<Integer.MIN_VALUE/10 ||(res == Integer.MIN_VALUE / 10 && (currentChar - '0') > -(Integer.MIN_VALUE % 10))){return Integer.MIN_VALUE;}res = res*10+sign*(currentChar - '0');index ++;}return res;}

思路有的,但是實際操作還是有點難以處理,例如判斷溢出的情況可以采取的方法。

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

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

相關文章

ASR(自動語音識別)任務中的LLM(大語言模型)

一、LLM大語言模型的特點 二、大語言模型在ASR任務中的應用 淺度融合 淺層融合指的是LLM本身并沒有和音頻信息進行直接計算。其僅對ASR模型輸出的文本結果進行重打分或者質量評估。 深度融合 LLM與ASR模型進行深度結合&#xff0c;統一語音和文本的編碼空間或者直接利用ASR…

OKCC在系統安全方面做了哪些措施?

語音通信行業&#xff0c;運營者普遍比較關心的問題是&#xff0c;運營風險如何控制&#xff1f;運營安全如何保證&#xff1f;OKCC呼叫中心又有那些風控措施來保證運營安全。 當前階段&#xff0c;語音通信運營&#xff0c;最主要的風險主要包括以下幾個方面&#xff1a; 一、…

無涯教程-Perl - wait函數

描述 該函數等待子進程終止,返回已故進程的進程ID。進程的退出狀態包含在$?中。 語法 以下是此函數的簡單語法- wait返回值 如果沒有子進程,則此函數返回-1,否則將顯示已故進程的進程ID Perl 中的 wait函數 - 無涯教程網無涯教程網提供描述該函數等待子進程終止,返回已故…

Three.js 實現模型材質局部輝光效果和解決輝光影響場景背景圖顯示的問題

1.Three.js 實現模型材質局部輝光效果 2.解決輝光效果影響場景背景圖顯示的問題 相關API的使用&#xff1a; 1. EffectComposer&#xff08;渲染后處理的通用框架&#xff0c;用于將多個渲染通道&#xff08;pass&#xff09;組合在一起創建特定的視覺效果&#xff09; 2. …

MME: A Comprehensive Evaluation Benchmark for Multimodal Large Language Models

本文也是LLM系列相關文章&#xff0c;針對《MME: A Comprehensive Evaluation Benchmark for Multimodal Large Language Models》的翻譯。 MME:一個多模態大型語言模型的綜合評估基準 摘要1 引言2 MME評估套件3 實驗4 分析5 結論 摘要 多模態大語言模型&#xff08;MLLM&…

Java-運算符和控制語句(上)(基于c語言的補充)

算術運算符 關于求余 不管分子&#xff0c;分母是正還是負&#xff0c;對于分母&#xff0c;直接取正&#xff1b;對于分子若有負號&#xff0c;則先提取出來&#xff1b;剩下兩個正的分子分母運算&#xff1b;最后&#xff0c;若剛才的分子有負號&#xff0c;對最后的結果添加…

Java版 招投標系統簡介 招投標系統源碼 java招投標系統 招投標系統功能設計tbms

? 項目說明 隨著公司的快速發展&#xff0c;企業人員和經營規模不斷壯大&#xff0c;公司對內部招采管理的提升提出了更高的要求。在企業里建立一個公平、公開、公正的采購環境&#xff0c;最大限度控制采購成本至關重要。符合國家電子招投標法律法規及相關規范&#xff0c;以…

scala中json4s 使用詳解

預備知識 json4s的數據結構AST (Abstract Syntax Tree)。 sealed abstract class JValue case object JNothing extends JValue // zero for JValue case object JNull extends JValue case class JString(s: String) extends JValue case class JDouble(num: Double) extend…

arcgis--坐標系

1、arcgis中&#xff0c;投影坐標系的y坐標一定是7位數&#xff0c;X坐標有兩種&#xff1a;6位和8位。 6位&#xff1a;省略帶號&#xff0c;這是中央經線形式的投影坐標&#xff0c;一般投影坐標中會帶CM字樣&#xff1b;8位&#xff1a;包括帶號&#xff0c;一般投影坐標中…

數字化時代,數據倉庫和商業智能BI系統演進的五個階段

數字化在逐漸成熟的同時&#xff0c;社會上也對數字化的性質有了進一步認識。當下&#xff0c;數字化除了前邊提到的將復雜的信息、知識轉化為可以度量的數字、數據&#xff0c;在將其轉化為二進制代碼&#xff0c;引入計算機內部&#xff0c;建立數據模型&#xff0c;統一進行…

一鍵搭訕以及打招呼設置(swift)

項目描述&#xff1a;用戶通過打招呼設置錄制打招呼語音&#xff0c;添加打招呼文字&#xff0c;首頁feed頁面展示sayhi的小動畫&#xff0c;點開可查看將要搭訕的列表&#xff0c;選擇想要搭訕的用戶以及搭訕的文字和語音&#xff0c;也可隨機選擇文案、語音&#xff0c;未通過…

CAS 一些隱藏的知識,您了解嗎

目錄 ConcurrentHashMap 一定是線程安全的嗎 CAS 機制的注意事項 使用java 并行流 &#xff0c;您要留意了 ConcurrentHashMap 在JDK1.8中ConcurrentHashMap 內部使用的是數組加鏈表加紅黑樹的結構&#xff0c;通過CASvolatile或synchronized的方式來保證線程安全的,這些原理…

TikTok或將于8月底關閉半閉環、速賣通或將推出“半托管”模式

《出海周報》是運營壇為外貿企業主和外貿人獨家打造的重要資訊欄目&#xff0c;聚焦企業出海、海外市場動態、海外監管政策等方面&#xff0c;以簡捷的方式&#xff0c;提升讀者獲取資訊的效率。 接下來運營壇為大家帶來第15期出海周報&#xff0c;快來看看這周國內外市場發生了…

C++--紅黑樹

1.什么是紅黑樹 紅黑樹&#xff0c;是一種二叉搜索樹&#xff0c;但在每個結點上增加一個存儲位表示結點的顏色&#xff0c;可以是Red或Black。 通過對任何一條從根到葉子的路徑上各個結點著色方式的限制&#xff0c;紅黑樹確保沒有一條路徑會比其他路徑長出倆倍&#xff0c;因…

jdbc 使用rewriteBatchedStatements=true后,報錯

jdbc 使用rewriteBatchedStatementstrue后&#xff0c;報錯了 rewriteBatchedStatementstrue解釋 rewriteBatchedStatementstrue是一個配置選項&#xff0c;它影響MySQL JDBC驅動程序的行為。JDBC是Java數據庫連接的標準。當你使用Java程序連接MySQL數據庫時&#xff0c;你需要…

秋招面經——結合各方面試經驗

Mysql mysql事務 共享鎖與排他鎖 共享鎖&#xff1a;允許一個事務去讀一行&#xff0c;阻止其他事務獲得相同數據集的排他鎖。&#xff08;讀都允許讀&#xff0c;但我在讀不允許你去改&#xff09; 排他鎖&#xff1a;允許一個事務去讀一行&#xff0c;阻止其他事務獲得相同…

UVA 10006 埃氏篩法+快速冪

本題目使用費馬定理時&#xff0c;我隨機定義了10個數字&#xff0c;循環用費馬小定理判斷&#xff0c;數組中的值不用和我的相同&#xff0c;隨機即可。 #include <iostream> using namespace std; typedef unsigned long long ll; bool isPrime[65007]; ll a[10]; voi…

【Unity細節】Unity中的層級LayerMask

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;元宇宙-秩沅 hallo 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! 本文由 秩沅 原創 &#x1f636;?&#x1f32b;?收錄于專欄&#xff1a;unity細節和bug &#x1f636;?&#x1f32b;?優質專欄 ?【…

Mybatis Plus中使用LambdaQueryWrapper進行分頁以及模糊查詢對比傳統XML方式進行分頁

傳統的XML分頁以及模糊查詢操作 傳統的XML方式只能使用limit以及offset進行分頁&#xff0c;通過判斷name和bindState是否為空&#xff0c;不為空則拼接條件。 List<SanitationCompanyStaff> getSanitationStaffInfo(Param("name") String name,Param("bi…

前端---需要了解瀏覽器相關知識--瀏覽器請求服務器資源---緩存

知識點1: 掘金1&#xff1a;瀏覽器緩存 掘金2 :瀏覽器緩存 一、瀏覽器緩存 請求&#xff08;靜態資源 &#xff5c; 動態資源&#xff09; 一、緩存是什么&#xff1f; 如果沒有緩存的機制 每次都要重新請求靜態資源 1.從網絡上的下載時間&#xff0c;肯定大于從硬盤里讀的…