• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[神梦] 【每日一题】最小代价 - 2022.5.13 [复制链接]

1#
题目描述

给定一个整数n,通过删掉其中某一位数字,找出操作之后遗留的最大数字。

【示例】
输入:152
输出:52
解释:如果删掉1,得到52;如果删掉5,得到12;如果删掉2,得到15。因此最大方案是删掉1得到52。

题目难度:中等
题目来源:Simple Fun #79: Delete a Digit
题目交流: 584781753
  1. Import "SmAssert.dll"

  2. Function 最小代价(数字)
  3.     // 您的代码写在这里
  4. End Function


  5. SmAssert 最小代价(152) = 52
  6. SmAssert 最小代价(1001) = 101
  7. SmAssert 最小代价(10) = 1
复制代码

参考题解

  1. Import "SmAssert.dll"

  2. Function 最小代价(数字)
  3.     
  4.     '【作者】:神梦无痕
  5.     '【QQ】:1042207232
  6.     '【Q群】:584781753
  7.     
  8.     Dim 最大值
  9.     Dim i, m, num
  10.     
  11.     最大值 = 0
  12.     For i = 1 To Len(数字)
  13.         m = Mid(数字, i, 1)
  14.         num = Mid(数字, 1, i-1) & Replace(数字, m, "", i, 1)
  15.         num = Int(num)
  16.         If num > 最大值 Then
  17.             最大值 = num
  18.         End If
  19.     Next
  20.     最小代价 = 最大值
  21. End Function

  22. SmAssert 最小代价(152) = 52
  23. SmAssert 最小代价(1001) = 101
  24. SmAssert 最小代价(10) = 1
复制代码





插件下载

 
【插件】神梦断言插件 SmAssert.dll,帮助开发者发现业务逻辑错误

2#

了解下

3#

SmAssert 最小代价(1001) = 101

4#

学习下

5#

从0-9循环 嵌套 从右往左循环数字
判断从0-9.有0删0,有1删1,以此类推,一直到成功删除

6#

SmAssert 最小代价(1001) = 101

7#

不一样的解法
Function 最小代价(数字)
    If IsNumeric(数字) = False or Len(数字) = 1 Then Exit Function
    Dim sNum, result
    sNum = CStr(数字)
    If 数字 < 0 Then
        result = For_最小代价(StrReverse(Replace(sNum, "-", "")),9,0,-1)     
    Else
        result = For_最小代价(StrReverse(sNum),0,9,1)
    End If
    If 数字 < 0 Then result = "-"&result
    最小代价 = Clng(result)
End Function

Function For_最小代价(sNum,start,finish,st)
    For i = start To finish step st
        result = Replace(sNum, Cstr(i), "", 1, 1)
        If Len(result) < Len(sNum) Then
            For_最小代价 = StrReverse(result)
            Exit Function
        End If
    Next
End Function

1001=101
-152=-12
1=
123456=23456
654321=65432
45123=4523

点评

神梦科技  思路不错👍  发表于 2022/5/13 12:58:07

    已有1评分我要评分查看所有评分

    发新话题 回复该主题