首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

力扣刷题之分数加减运算(每日一题727)

来源:力扣(LeetCode) 链接 提示: 输入和输出字符串只包含 ‘0’ 到 ‘9’ 的数字,以及 ‘/’, ‘+’ 和 ‘-’。 输入和输出分数格式均为 ±分子/分母。...如果输入的第一个分数或者输出的分数是正数,则 ‘+’ 会被省略掉。 输入只包含合法的最简分数,每个分数的分子与分母的范围是 [1,10]。 如果分母是1,意味着这个分数实际上是一个整数。...但是这里为什么还会有定义的num然后乘以10呢?...0,如果出现了0,说明是整数,这里分母置为1就行 if (den == 0) { den++; } 下面就是对每一回得出的分子和分母进行一个相加...这次是求分母和分子的最大公约数,这里要注意分子的符号,我们这里是不要符号的,符号的最终我们用之前的符号的标记变量。

42610

剑指Offer(五十二)-- 正则表达式匹配(动态规划)

和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。...:用一个二维数组(套路)dp[i][j]用来表示str的前i个字符和pattern的前j个字符是否匹配。...和pattern的前j-2个字符匹配,此时的*前面的那个字符出现了0次)。...(如果str的前i - 1个字符和pattern的前j个字符匹配,并且str的第i个字符和pattern的第j - 1个字符相等,相当于‘*’前面的字符出现了1次) 1.3如果dp[i-1][j]=true...(表示str的前i-1个和patten的前j个匹配,并且pattern的第j-1个是‘.’,第j个是‘*’,那么说明可以匹配任何字符任何次数,自然str可以多匹配一个字符。)

34910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入理解Trie树

    从上面我们可以发现,前缀一样的单词,在实际存储中只存储了一份,并且如果单词后面有.符号表从root到这个位置是一个单词,前缀相同的单词会复用一样的公共节点。...Trie树的工作原理 这里以英文单词为例,我们知道英语单词由26个字母组成,每一个字母都是这26个字母中的其中一个,假如现在我们想为英语单词的suggest功能,那么使用Trie树就非常适合。...因为总共的可能性只有26,所以我们可以定义一个长度为26的数组来存储所有的可能性,然后附带一个boolean类型的变量,来标记当前层是否是一个单词。...TrieNode节点, 如果插入的地方已经存在,那么就直接继续插入下一个字母,直到整个单词的每一个字母都插入完毕后,在最后一个TrieNode节点处标记到目前这个节点处,代表一个完整的单词。...word.charAt(level)-'a']=null;//设置子节点为null if(currentNode.isWord){//判断父节点是否是一个word的结束,如果是说明是公共前缀就不能再删除了

    2.1K21

    重学KMP!

    给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。...要在文本串:aabaabaafa 中查找是否出现过一个模式串:aabaaf。 如动画所示: ? 动画里,我特意把 子串aa 标记上了,这是有原因的,大家先注意一下,后面还会说道。...长度为前1个字符的子串a,最长相同前后缀的长度为0。(注意字符串的前缀是指不包含最后一个字符的所有以第一个字符开头的连续子串;后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串。) ?...找到的不匹配的位置, 那么此时我们要看它的前一个字符的前缀表的数值是多少。 为什么要前一个字符的前缀表的数值呢,因为要找前面字符串的最长相同的前缀和后缀。 所以要看前一位的 前缀表的数值。...本题要在文本串字符串中找出模式串出现的第一个位置 (从0开始),所以返回当前在文本串匹配模式串的位置i 减去 模式串的长度,就是文本串字符串中出现模式串的第一个位置。

    48120

    LeetCode 09正则表达式匹配(递归VS动态规划)

    p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。 ? ?...我们使用我们声明一个dp[][]=new boolean[匹配串长度+1][模式串长度+1] 的二位数组用来储存结果, 其中dp[i][j]表示匹配串前i个和模式串前j个是否匹配。...如果dp[i][j-2]==true那么dp[i][j]肯定为true,因为可以把它看成一个空串。 ?...在这里插入图片描述 如果dp[i][j-2]不为true也不要紧,如果匹配串和模式串前一个字符可以匹配并且dp[i-1][j]为true,那么也可以匹配(a*和a ) ?...结语 今天又get一个动态规划题,以前没有用动态规划的思维去想过,但是这题还是挺好的,至于一些其他的方法如果后面有时间可以继续拓展。

    40410

    一天一大 leet(最长有效括号)难度:困难-Day20200704

    题目: 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。...设置开始与结束的指针来切分字符串 双层循环,符合要求的字符会在截取过程中出现 单数长度一定不符合要求,不进行是否符合校验 长度小于已经出现符合要求的字符,不进行是否符合校验 判断字符串是否符合要求 如果某个元素是...---- 匹配 匹配位置前一组匹配字符的长度与这次匹配的长度的和: ? 即: ? 如果5变成i的话则:如果 ? ,则: ?...不匹配 那指针在该位置时得到的字符串是不满足条件的 ---- 上面的例子中dp[4],即dp[i-1]是')',那如果i为2,dp[0]是'('时: dp[0]前面没有已经组队完成的字符长度,但是他可以与...(栈)来存贮那些可能存在匹配字符的元素索引(用于计算长度) 循环 遇到'(',其是起点的标记,存入 遇到')',找最近的那个'('与其匹配(从待匹配数组中去掉最后一个元素索引) 匹配字符从索引0开始,那么匹配

    39720

    细微之处见真章之StringUtils的isBlank函数细节解读

    一个 final 变量,除非之前该变量是明确未被赋值,否则再次赋值会报编译时错误。 一旦 final 变量被赋值,那么它就是始终保持同一个值。...它永远不会出现在赋值表达式的左侧。 (注意:局部变量声明符包含初始化但不能是赋值表达式。) 它永远不会作为前缀或后缀递增或递减运算符的操作数出现。...2 局部变量声明时如果没有初始化,如果满足以下几种情况,则为 effectively final 没有声明为 final 当它出现在赋值表达式的左边时,它肯定是未赋值的,而且在赋值之前也没有明确赋值...从语言角度: 只要满足以上条件,参数上可以不显式声明 final, 也可以在 lambda 表达式或者匿名内部类中使用。 显式声明还有一个好处是,在函数内部引用不能发生改变。...在这里我更希望大家转向从 Java 的语言和虚拟机层面来学习知识,而《Java 语言规范》和 《Java 虚拟机规范》则是官方出的权威参考。 是什么?为什么?怎么做? 这是一个非常重要的思维方式。

    73520

    《JavaSE》---17.<String 类的常见操作>

    如果博客中有错误或者没有读懂的地方。热烈欢迎大家在评论区进行讨论!!! 喜欢我文章的兄弟姐妹们可以点赞,收藏和评论我的文章。...语言只是工具,不能决定你好不好找工作,决定你好不好找工作的是你的能力!!!!! 学历本科及以上就够用了!!!!!!!!!!!!!!!!!!!!!!!!!!!!...这种说法是错误的,不是因为String类自身,或者其内部value被final修饰而不能被修改。...只是不能引用其他对象 为什么 String 要设计成不可变的?(了解) 方便实现字符串对象池. 如果 String 可变, 那么对象池就需要考虑写时拷贝的问题了. 不可变对象是线程安全的....其实就是哈希表 遍历字符串中的每一个字符。并且每出现一次这个字母将字母对应的ascii码值在哈希表中+1 最后再次遍历这个字符串中的每一个字符。找到第一个在哈希表是1的字符。返回对应的下标。

    17210

    和233酱一起刷leetcode系列

    然后呢,你一着急,你就会进入那种我在《开发团队的效率》中说的那种毫无效率case by case的开发模式,而你也进入了“平庸模式”。于是你就会出现下图那样的情况。 ?...因为我总是在晚上10点以后做题,所以,基本上都是在加班状态中工作。...这种状态过上两三天,你就会发现,整个大脑已经不转了,而且不但不转,还会犯很多低级错误,很多事情都想不清楚,一个晚上都在和程序的状态控制做搏斗,代码写得越来越乱,越来越没条理。...假设子串l->r(l,r是输入字符串的字符下标)是最长无重复子串,当我们从左到右遍历输入串的字符,在找子串l->r时,r所对应的l值至少是在和r所对应的字符串相同的上一个下标的右边一位。...假设取nums1数组的前k/2个数 和 nums2数组的前k/2个数 ,假设: nums1[k/2] 前k个数中一定包含nums1的前k/2个数,那我们可以从nums1

    48220

    【TypeScript】never 和 unknown 的优雅之道

    3、unknown 和 any 3.1 unknown —— 代表万物 我在阅读同事的代码时,很少看到 unknown 类型的出现。这并不意味着它不重要,相反,它是安全版本的 any 类型。...可以,不过原因和上面一样,JSON.parse() 的函数签名被添加到 TypeScript 系统之前,unknown 类型还没出现,否则它的返回类型应该是 unknown。...4.1.2 为什么说 any 不是严格的 bottom type 我在阅读一些文章的时候发现,大家常说 any 既是 top type,也是 bottom type,但这种说法并不严谨。...从这里我们也很容易发现,在一个类型系统中,bottom type 是独一无二的,它唯一地描述了函数无返回的情况。...type 'never' const x: Return = 3; 在收窄联合类型时,never 也巧妙地发挥了它作为最小因子的作用。

    1.3K20

    刷题日常(找到字符串中所有字母异位词,​ 和为 K 的子数组​,​ 滑动窗口最大值​,全排列)

    当窗口大小 = p的个数 并且 hash1和hash2相等的时候 记录此时的L加入最终结果 细节1:窗口大小能不能直接用hash2的size()记录?...答案是不行 因为可能漏 ,会出现重复字符 里面有3个元素 ,而hash.size()却为2 所有肯定会出错 细节2:当窗口大小大于 p的个数时候 ,能不能直接移除L上的位置 答案也是不行 因为会出现重复元素...hash表第一个变量定义为前缀和,第二个变量定义为出现的次数 使用一个哈希表记录前缀和出现的数字,以及它的个数 只需要看哈希表是否有(当前数字的前缀和-K ) 如果有,返回它对应的个数,如果没有,...如图中, 1.一个数字只能使用一次在整个过程,当进入下一层中,使用一个记录boolean数组记录上一层使用的状态,如果为true,意味着我们已经使用过此元素,那么我们就跳过这个索引,避免重复使用同一个元素...为了理解这个条件,我们需要知道它的作用: nums[i - 1] == nums[i]:这个条件判断当前元素 nums[i] 是否和前一个元素 nums[i - 1] 相等。

    7310

    HDOJ(HDU) 2093 考试排名(Arrays.sort排序、类的应用)

    它的功能是怎么实现的呢?...虽然你在题数上,大步地跃上了一个台阶,但是在耗时上要摊上你共花去的时间。特别是,曾经有过的错误提交,每次都要摊上一定的单位时间分。...,里面有个整数b,那就表示该学生提交该题AC了,耗去了时间a,同时,曾经错误提交了b次,因此对于下述输入数据: ?...每个学生占一行,输出名字(10个字符宽),做出的题数(2个字符宽,右对齐)和时间分(4个字符宽,右对齐)。名字、题数和时间分相互之间有一个空格。...解析在代码中有。 注意格式!名字除了要占10个字符还要和AC的题目数之间空一格。 题目数和时间也是一样的,之间需要空一格。

    24610

    剑指Offer(五十三)-- 表示数值的字符串

    ,都不是合法的 否则hasSign置为true,表示符号出现过 如果前面已经出现过E,或者前面没有数字,直接返回false 否则,hasE置为true,其他的置为false,也就是E后面可以继续出现符号数字和小数点了...(index)>='0'&& str.charAt(index)<='9'){ index++; // 表示前面有数字...,其实小数点和符号,和数字,都是可以再出现的,可以理解为E就是一个分割线。...个人写作方向:Java源码解析,JDBC,Mybatis,Spring,redis,分布式,剑指Offer,LeetCode等,认真写好每一篇文章,不喜欢标题党,不喜欢花里胡哨,大多写系列文章,不能保证我写的都完全正确...遗漏或者错误之处,还望指正。 平日时间宝贵,只能使用晚上以及周末时间学习写作 - END -

    33310

    leetcode刷题(106)——316. 去除重复字母

    给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。...在向栈stk中插入字符’a’的这一刻,我们的算法需要知道,字符’a’的字典序和之前的两个字符’b’和’c’相比,谁大谁小?...我们的算法在stk.peek() > c时才会 pop 元素,其实这时候应该分两种情况: 情况一、如果stk.peek()这个字符之后还会出现,那么可以把它 pop 出去,反正后面还有嘛,后面再 push...情况二、如果stk.peek()这个字符之后不会出现了,前面也说了栈中不会存在重复的元素,那么就不能把它 pop 出去,否则你就永远失去了这个字符。...for(int i=0;ilength();i++){ char c = s.charAt(i); //遍历过,要减少出现次数

    26320

    小米场景题,让我措手不及...

    大家好,我是千羽。 小米golang开发面试只进行了1小时,没有涉及过多的八股文题目,给了两个场景题,让我一下子措手不及,虽然我很想进入下一轮,但很遗憾,第一轮面试挂~~ 1.对安全的了解。...通过在访问map或slice之前获取互斥锁,可以确保同一时间只有一个协程可以访问该数据结构,从而避免数据竞争。...使用DNS轮询: 如果这五个域名都是你的,你可以在DNS设置中配置轮询。 例如,当用户请求域名a时,DNS返回一个b的IP;当用户请求b时,DNS返回一个c的IP,以此类推。...优化和调整: 根据实际情况持续优化和调整策略,以获得最佳的性能和用户体验。 (2)一个ip:192.168.2.10,数据库里面有大量ip段,一个区间有几万个。写个api查数据库,返回该ip段。...另外,你需要确保你的数据库中有一个名为ip_ranges的表,该表包含start_ip和end_ip字段,用于存储IP段的起始和结束地址。

    20510

    剑指offer(41-53题)题解

    我们用一个类似拉链的动态滑动试探。我们都知道:连续相加和相等,如果数很小那么就很长,如果数很大就很短。 所以我们用left和right标记左右,用一个value记录这个区间的和。...然后从非鬼开始判断是否连续,如果和前一个不连续如果有鬼用鬼前一个数往后补一张一直到连续,如果没鬼了还不连续那就说明那是真的完成不了。 如果最后未能遍历所有牌。或者有相同牌(非鬼)那么一定不是顺子。...我觉得这题大家可以自己独立研究一下。能够加深对二进制和位运算的印象和认识。 当然,做这题前,建议稍微了解下四种常用的位运算与或非 异或。...和''的正则表达式。模式中的字符'.'表示任意一个字符,而''表示它前面的字符可以出现任意次(包含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。...例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配 思路: 这题后面要优化,感觉我写的逻辑太乱了。本来想能不能先把非符号去掉。。能不能dp。。

    44720

    LeetCode 题目解答——Hard 部分

    再定义一个 pathSum 方法,用来返回以 root 为根时,该树的最大 path sum,在该方法内,调用 maxSinglePath 方法分别获取左子树和右子树的最大单向路径,二者之和再加上当前节点的值为包含当前...使用一个 int 数组来存放当前棋盘上皇后的状态,int[i]=j,表示第 i 行上,皇后放在第 j 列,这样天然避免了在同一行情况的出现,也避免了使用二维数组来保存状态;但是不能在同一列和不能在同一条对角线需要每次摆放一个皇后以后立马检查...在求中位数的时候小心坐标运算的时候发生错误,我反正错了 N 次。思路好找,要写对还挺难的。...于是改成循环,从短串往长串遍历(i 从小到大),而在每次迭代中从右向左寻找包含 s[i] 的合法序列(j 从大到小): 每次循环迭代都拿包含 s[i] 的括号序列和不包含 s[i] 的括号序列(即前一次迭代的结果...注意:在遇到星号的时候要把 pi 和 si 分别赋给 pa 和 sa,而在有星号出现后的未匹配事件发生时,要把 pa 和 sa 赋回给 pi 和 si(相当于 pa 和 sa 占住位置,pi 和 si

    1.4K20

    为什么我们公司强制弃坑FastJson了?主推Jackson~

    如果面试官问为什么选择FastJson?因为快!这一个理由就可以把他顶回去了。 这里的调查研究并不是很充分,没有对内存占用、大文档的测试。...在现代应用程序中,即使最慢的Gson,也是满足需求的;解析文档速度的快慢,并不能作为选型的唯一标准,可能连主要标准都算不上。对IO优化,并行处理等优化措施,比选用一个更快的库更有效。...FastJson并没有那么流行 然而,FastJson并没有那么流行,有一个最直观的数据,那就是在Maven的中的引用量,和Jackson和Gson不在一个数量级,和Jackson强大的家族更没法比。...难道我用了一个假的流行的国产类库?在知乎看到了一篇帖子,讨论为什么外国友人不喜欢FastJson。 结论就是FastJson是个代码质量不高的国产类库。...完全颠覆了我的认知,因为在我的项目中,是经常使用FastJson的,并没有出现什么Bug,而且这段评论是在2016年写的。 抱着怀疑的态度,打开FastJson的地址,看到大家提的Issues。

    2.5K30
    领券