首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

移掉 K 位数字

给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小,其中 解题思路 首先我们要了解一个关于数学的前置知识,对于两个相同长度的数字序列,最左边不同的数字决定了这两个数字的大小...,例如,对于 A = 1axxxA = 1axxx,B = 1bxxxB = 1bxxx,如果 a > b,则 A > B 基于此,我们可以知道,若要使得剩下的数字最小,需要保证靠前的数字尽可能小 如果使用暴力法...,那思路就是: 从左到右遍历 对于每一个遍历到的元素,前一个元素比当前元素大,则丢弃前一个元素,否则保留前一个元素 需要注意的是,如果给定的数字是一个单调递增的数字,那么我们的算法会永远选择不丢弃。...因此,对于每个数字,如果该数字小于栈顶元素,我们就不断地弹出栈顶元素,直到 栈为空 新的栈顶元素不大于当前数字 已经删除了 k 位数字 上述步骤结束后我们还需要针对一些情况做额外的处理: 如果我们删除了...m 个数字且 m<k,我们需要从序列尾部删除额外的 k-m 个数字 如果最终的数字序列存在前导零,我们要删去前导零 如果最终数字序列为空,我们应该返回 0 class Solution {

67750

移掉 K 位数字(LeetCode 402)

循环上面的操作,直到移除 K 位数字。 我们以 4258 为例,如果要求我们删除两个数字。 第一次遍历,找到第一个大于右边的数字,为 4,所以删除 4 剩下 258。...比如 108 删除一位数字,那么删除 1 后,最终返回前需要将前导 0 去掉。...因此,对于每个数字,如果该数字小于栈顶元素,我们就不断地弹出栈顶元素,直到 栈为空 或者新的栈顶元素不大于当前数字 或者我们已经删除了 k 位数字 然后入栈。...如果已经删除了 k 位数字,那么将栈中数字与剩余数字拼接,去掉前导零后返回。 如果还没有删除 k 位数字,则继续遍历后面的数字直到遍历完。...移掉 K 位数字 - LeetCode

13310

Leetcode 357: 统计各位数字都不同的数字个数

Leetcode 357: 统计各位数字都不同的数字个数 解法包括暴力解法和扩张方法。 暴力解法 直接对所有的数字求解,约为O(nlogn),目测必定超时,就不浪费时间了。...因此特殊的,定义dp[n-1][0]为第n位数为任意非0数时,n-1位为0时的重复数字个数 显而易见的是,dp[1][…]=0,长度为一位的时候不会有重复的数据。...最新的一位数据的内容主要包括两个方面: 之前已经重复的0:dp[n-1][0] = 10^{n-3} + \sum_{i\in Q_0}dp[n-2][i],包括最新的一个重复,加上之前的重复项目 更新完...其中Q_m表示个位数中除了m以外的集合,比如Q_1={0,2,3,…,9}。...因为不存在以0开头的数字。 数学方法 官方给的解法:含有d位数(2\geq d\leq 10)的各位数字都不同的数字x的个数可以由9\times A_{9}^{d-1}。

84810

Python3实现个位数字和十位数字对调, 其乘积不变

位数13和62具有很有趣的性质,把它们个位数字和十位数字对调, 其乘积不变, 即 13 * 62 31 * 26 编程序求共有多少对这种性质的两位数,个位与十位相同的不在此列 如11、22 重复出现的不在此列...100) continue # 已经解决了11、22 重复出现的不在此列 和 13*62与62*13不在队列 for j in range(i + 1, 100): #遍历出数字并找出个位和十位...给出一个3位的正整数,你需要将这个整数中每位上的数字进行反转。例如:输入: 123,输出: 321 。大家先不看下面答案,看看如果是自己,可以想出几种Python方式来解决!...下面分别来说说几种实现的方式: 1、取余取整方式 class Test: def reverseInteger(self, number): g = number%10 #取出个位数...s = (int(number/10))%10 #取出十位数 b = int(number/100) #取出百位数 return g*100+s*10+b if __name

1.1K10

微信小程序|验证手机号位数

问题描述 当设计好登录界面后,如何在后台对用户输入的手机号位数进行验证,使输入框不止是起到装饰作用呢?...解决方案 登录界面的美化仅在视图层达到要求,而判断手机号的位数需要对用户输入的数据进行处理,即在逻辑层起到作用,才能使登录框不仅只是输入信息,还能产生反馈。...在js处理逻辑,示例代码: // pages/login/login.js Component({ /** * 组件的属性列表 */ properties: {...success(res){ console.log(res.data); } }) } } }) 其中,在js...第一步:获取手机号码和验证码 在组件的方法列表写方法(以前的开发者工具版本可以直接写在变量后面,新版本有专门的组件方法列表),示例代码: getPhone:function(e){ console.log

1.1K20
领券