leetcode劍指 Offer 20. 表示數值的字符串

請實現一個函數用來判斷字符串是否表示數值(包括整數和小數)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、"-1E-16"、“0123"都表示數值,但"12e”、“1a3.14”、“1.2.3”、"±5"及"12e+5.4"都不是。

代碼

class Solution {public boolean isNumber(String s) {int l=0,r=s.length()-1;while (l<s.length()&&s.charAt(l)==' ') l++;while (r>0&&s.charAt(r)==' ') r--;s=s.substring(l,r+1);int p=0,n=0,e=0;for (int i=0;i<s.length();i++){switch (s.charAt(i)){case '.':              if(i>0&&!Character.isDigit(s.charAt(i-1))&&s.charAt(i-1)!='+'&&s.charAt(i-1)!='-'||i<s.length()-1&&!Character.isDigit(s.charAt(i+1))&&s.charAt(i+1)!='+'&&s.charAt(i+1)!='-'&&s.charAt(i+1)!='e'&&s.charAt(i+1)!='E'||p==1||s.length()==1||e==1)return false; p++;break;case '+':case '-':if(i!=0&&(s.charAt(i-1)!='e'&&s.charAt(i-1)!='E')||i==s.length()-1)return false;break;case 'e':case 'E':if(i==0||i==s.length()-1||n==0||e>0) return false; p=0; e++;break;case ' ':  return false;default:if(!Character.isDigit(s.charAt(i))) return false;n++;}}return n>0;}
}

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

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

相關文章

python接口自動化2-發送post請求

前言 發送post的請求參考例子很簡單&#xff0c;實際遇到的情況卻是很復雜的&#xff0c;首先第一個post請求肯定是登錄了&#xff0c;但登錄是最難處理的。登錄問題解決了&#xff0c;后面都簡單了。 一、查看官方文檔 1.學習一個新的模塊&#xff0c;其實不用去百度什么的&am…

簡介瀏覽器內核與JavaScript引擎

本文介紹了常用瀏覽器內核與JavaScript引擎 一、瀏覽器內核 Rending Engine, 顧名思義&#xff0c;稱之為渲染網頁內容的&#xff0c;將網頁的代碼轉換為你看得見的頁面&#xff0c;因為是排版&#xff0c;所以排版&#xff0c;所以肯定會有排版錯誤等問題。為什么會有排版錯誤…

Linux查看tar實用程序,linux tar指令常用選項

linux的tar指令經常被用到&#xff0c;因為壓縮文件的時候通常需要打包文檔&#xff0c;而tar指令就是打包指令&#xff0c;同時gzip壓縮程序和bzip2壓縮程序都是支持tar指令的&#xff0c;所以tar指令在打包的同時還可以用gzip和bzip進行壓縮&#xff0c;這樣多文件可以打包的…

代碼字體mono_如何構建代碼存儲庫:Multi,Mono或Organic?

代碼字體monoby Chetan Sharma由Chetan Sharma 如何構建代碼存儲庫&#xff1a;Multi&#xff0c;Mono或Organic&#xff1f; (How to Structure Code Repositories: Multi, Mono, or Organic?) The newest debate in town is whether you should keep your services in a si…

leetcode1424. 對角線遍歷 II(排序)

給你一個列表 nums &#xff0c;里面每一個元素都是一個整數列表。請你依照下面各圖的規則&#xff0c;按順序返回 nums 中對角線上的整數。 示例 1&#xff1a; 輸入&#xff1a;nums [[1,2,3],[4,5,6],[7,8,9]] 輸出&#xff1a;[1,4,2,7,5,3,8,6,9] 代碼 class Solution …

DaVinci各版本安裝指南

鏈接: https://pan.baidu.com/s/1g1kaXZxcw-etsJENiW2IUQ?pwd0531 ? #2024版 1.鼠標右擊【DaVinci_Resolve_Studio_18.5(64bit)】壓縮包&#xff08;win11及以上系統需先點擊“顯示更多選項”&#xff09;【解壓到 DaVinci_Resolve_Studio_18.5(64bit)】。 2.打開解壓后的文…

使用 Servlet 讀取表單數據

Technorati 標簽: servlet&#xff1b;java 一、概述 Servlet 有一個比較好的功能就是可以自動處理表單提交的數據。我們只需要調用HttpServletRequest#getParameter(String name),就可以獲得指定參數的值&#xff08;String&#xff09;&#xff0c;注意此方法是大小寫敏感的。…

linux文檔權限

1、登錄 root 用戶&#xff1a;su - mac一開始進入創建的用戶是具有管理員權限的用戶&#xff0c;但是密碼卻不是進入 root 用戶的密碼&#xff0c;可以使用 sudo su - 免密進入 root 用戶。 2、退出 root 用戶&#xff1a;exit 3、列出檔案&#xff08;包括隱藏的檔案&#xf…

小程序 仿麥當勞_手機上的麥當勞和星巴克:為什么現在首先使用移動應用程序...

小程序 仿麥當勞by James Hsu由徐H 手機上的麥當勞和星巴克&#xff1a;為什么現在首先使用移動應用程序 (McDonald’s and Starbucks on Your Phone: Why Mobile Apps Are Now First on the Menu) One Friday this July, I got excited about McDonalds. So excited that I s…

MyLinkedList

/*** 節點類* author JP* */ class Node {Object value;//節點元素值Node pre;//上一個節點Node next;//下一個節點public Node(Object value) {this.value value;} }/*** 鏈表類* author JP**/ public class MyLinkedList {Node cur;//目前指向的節點Node head;//頭結點Node …

linux開啟ping服務,Linux 云服務器禁止和開啟Ping

原標題&#xff1a;Linux 云服務器禁止和開啟Ping在使用Linux服務器的時候&#xff0c;一般系統默認是開啟ping的&#xff0c;比如我們可以ping測試網絡的延遲質量。當然也有部分服務商是可以通過安全組設置禁止ping的&#xff0c;我們可以設置安全組對應項目開啟或禁止ping&am…

leetcode1432. 改變一個整數能得到的最大差值(貪心)

給你一個整數 num 。你可以對它進行如下步驟恰好 兩次 &#xff1a; 選擇一個數字 x (0 < x < 9). 選擇另一個數字 y (0 < y < 9) 。數字 y 可以等于 x 。 將 num 中所有出現 x 的數位都用 y 替換。 得到的新的整數 不能 有前導 0 &#xff0c;得到的新整數也 不能…

oracle之 Oracle歸檔日志管理

在Oracle中&#xff0c;數據一般是存放在數據文件中&#xff0c;不過數據庫與Oracle最大的區別之一就是數據庫可以在數據出錯的時候進行恢復。這個也就是我們常見的Oracle中的重做日志(REDO FILE)的功能了。在重做日志分成2部分&#xff0c;一個是在線重做日志文件&#xff0c;…

linux 安裝rmp服務,Linux LAMP服務的rpm包安裝與配置

1.apache(httpd) 所在光盤裝包apr-xxx.rpm (二)postgresql-libs-xxx.rpm (二)apr-util-xxx.rpm (二)http-xxx.rpm (二)2.mysql (二)裝包perl-DBI-xxx.rpm (二)mysql-xxx.rpm (二)3.mysqlserver裝包perl-DBD-mysql-xxx.rpm (二)mysql-server-xxx.rpm (二)4.PHP裝包gmp-xxx.rpm (…

紅外感應模塊+蜂鳴器實現簡易報警(轉)

拿到了一個紅外感應模塊HC-SR501&#xff0c;于是就用它和蜂鳴器簡單試驗了下。主要是試驗一下這個紅外感應模塊的功能&#xff0c;所以代碼也寫的很隨便啦&#xff0c;邏輯上也欠考慮。實現基本功能&#xff1a;運行腳本后&#xff0c;感應模塊每隔一定時間檢測&#xff0c;如…

leetcode51. N 皇后(回溯算法)

n 皇后問題研究的是如何將 n 個皇后放置在 nn 的棋盤上&#xff0c;并且使皇后彼此之間不能相互攻擊。 上圖為 8 皇后問題的一種解法。 給定一個整數 n&#xff0c;返回所有不同的 n 皇后問題的解決方案。 每一種解法包含一個明確的 n 皇后問題的棋子放置方案&#xff0c;該方案…

ubuntu下python的錯誤

ubuntu python 2.7 python test.py *.py permission denied chmod x *.py 轉載于:https://www.cnblogs.com/gisalameda/p/11086624.html

kotlin半生對象_如何在Kotlin中使用Actor實現對象池

kotlin半生對象by osha1由osha1 如何在Kotlin中使用Actor實現對象池 (How to implement an Object-Pool with an Actor in Kotlin) We use object pool in jasync-sql to manage connections to the database. In this post, I will share how it is done in a performant, lo…

linux運行apktool簽名,解決Linux中使用ApkTool遇到問題

8種機械鍵盤軸體對比本人程序員&#xff0c;要買一個寫代碼的鍵盤&#xff0c;請問紅軸和茶軸怎么選&#xff1f;遇到問題在Linux中使用IntelliDroid工具時&#xff0c;按要求配置好環境之后&#xff0c;始終無法成功運行該工具內部的ApkTool&#xff0c;導致后續的安卓靜態分析…

python 腳本學習(二)

task1&#xff1a; 在一個文件中&#xff0c;單詞之間使用空格、分號、逗號或者句號分隔&#xff0c;請提取全部單詞。 代碼實例&#xff1a; 1234567891011#!/usr/local/python27/bin/python2.7import sys import re words [] with open(sys.argv[1]) as f: for line in f: #…