云空间可以做网站,重庆seo计费管理,青春网站建设工作室,深圳工业设计展会算法进修Day-33
65. 有效数字
难度#xff1a;困难 题目要求 有效数字#xff08;按顺序#xff09;可以分成以下几个部分#xff1a;
一个 小数 或者 整数#xff08;可选#xff09;一个 e 或 E #xff0c;后面跟着一个 整数
小数#xff08;按顺序#xff09;…算法进修Day-33
65. 有效数字
难度困难 题目要求 有效数字按顺序可以分成以下几个部分
一个 小数 或者 整数可选一个 e 或 E 后面跟着一个 整数
小数按顺序可以分成以下几个部分
可选一个符号字符 或 -下述格式之一 至少一位数字后面跟着一个点 .至少一位数字后面跟着一个点 . 后面再跟着至少一位数字一个点 . 后面跟着至少一位数字
整数按顺序可以分成以下几个部分
可选一个符号字符 或 -至少一位数字
部分有效数字列举如下[2, 0089, -0.1, 3.14, 4., -.9, 2e10, -90E3, 3e7, 6e-1, 53.5e93, -123.456e789]
部分无效数字列举如下[abc, 1a, 1e, e3, 99e2.5, --6, -3, 95a54e53]
给你一个字符串 s 如果 s 是一个 有效数字 请返回 true 。
示例1 输入s “0” 输出true 示例2 输入s “e” 输出false 示例3 输入s “.” 输出false 题解 可以直接使用正则表达式进行匹配^\s*-?\d(\.\d)?([eE][-]?\d)?\s*$为当前正确得正则表达式解读如下 ^\s*表示以零个、一个或多个空格开头-?表示一个可选的负号\d表示一个或多个的数字(\.\d)?表示一个可选的小数部分包括一个小数点和至少一个数字([eE][-]?\d)?表示科学计数法包括e或E可选的正负号和至少一个数字\s*表示以零个、一个或多个空字符$表示结尾 想法代码
using System.Text.RegularExpressions;class Solution
{private static Regex compare new Regex(^\s*-?\d(\.\d)?([eE][-]?\d)?\s*$);public static void Main(String[] args){string s e;Solution solution new Solution();Console.WriteLine(solution.IsNumber(s));}public bool IsNumber(string s){return compare.IsMatch(s);}
}66. 加一
难度简单 题目要求 给定一个由 整数 组成的 非空 数组所表示的非负整数在该数的基础上加一。
最高位数字存放在数组的首位 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外这个整数不会以零开头。
示例1 输入digits [1,2,3] 输出[1,2,4] 示例2 输入digits [4,3,2,1] 输出[4,3,2,2] 示例3 输入digits [0] 输出[1] 题解 定义 i n d e x d i g i t s . L e n g t h − 1 indexdigits.Length-1 indexdigits.Length−1如果数组中 i n d e x index index 位置为9那么将 i n d e x index index 前移 如果 i n d e x 0 d i g i t s [ i n d e x ] 9 index0 \\ digits[index]9 index0digits[index]9那么对数组扩容 i n d e x index index 位置的内容变为1且对之后的所有元素变为0如果 i n d e x 0 d i g i t s [ i n d e x ] ≠ 9 index0\\digits[index]\neq9 index0digits[index]9 那么将 i n d e x 1 index1 index1并对之后的元素变为0 如果不满足上方条件则将最后一个元素加一 想法代码
class Solution
{public static void Main(String[] args){int[] digits { 8,9 };Solution solution new Solution();int[] res solution.PlusOne(digits);for (int i 0; i res.Length; i){Console.Write(res[i] );}}public int[] PlusOne(int[] digits){int index digits.Length - 1;if (digits[digits.Length - 1] 9){if (digits.Length 1){while (true){if (index 0){break;}if (digits[index] 9){index--;}else{break;}}}if (index 0 digits[index] 9){Array.Resize(ref digits, digits.Length 1);digits[index] 1;}else{digits[index] 1;}for (int i digits.Length - 1; i index; i--){digits[i] 0;}}else{digits[digits.Length - 1] 1;}return digits;}
}