712. 两个字符串的最小ASCII删除和(动态规划)

712. 两个字符串的最小ASCII删除和题目描述:给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和。示例 1:输入: s1 = "sea", s2 = "eat"输出: 231解释: 在 "sea" 中删除 "s" 并将 "s" 的值(115)加入总和。在 "eat" 中删除 "t" 并将 116 加入总和。结束时,两个字符串相等,115 + 116 = 231 就是符合条件的最小和。示例 2:输入: s1 = "delete", s2
摘要由CSDN通过智能技术生成

712. 两个字符串的最小ASCII删除和

题目描述:

给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和。

示例 1:

输入: s1 = "sea", s2 = "eat"
输出: 231
解释: 在 "sea" 中删除 "s" 并将 "s" 的值(115)加入总和。
在 "eat" 中删除 "t" 并将 116 加入总和。
结束时,两个字符串相等,115 + 116 = 231 就是符合条件的最小和。

示例 2:

输入: s1 = "delete", s2 = "leet"
输出: 403
解释: 在 "delete" 中删除 "dee" 字符串变成 "let",
将 100[d]+101[e]+101[e] 加入总和。在 "leet" 中删除 "e" 将 101[e] 加入总和。
结束时,两个字符串都等于 "let",结果即为 100+101+101+101 = 403 。
如果改为将两个字符串转换为 "lee" 或 "eet",我们会得到 433 或 417 的结果,比答案更大。

注意:

    0 < s1.length, s2.length

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 起泡法和选择法都是常见的排序算法,可以用来将字符串按照ASCII码值从小到大排列。 起泡法是一种交换排序算法,它通过不断比较相邻的元素并交换位置来达到排序的目的。具体实现时,从第一个元素开始,依次比较相邻的两个元素,如果前面的元素比后面的元素大,则交换它们的位置。这样一趟比较下来,最大的元素就会被交换到最后面。然后再从第一个元素开始,重复上述操作,直到所有元素都排好序为止。 选择法也是一种交换排序算法,它的基本思想是每次从未排序的元素中选择最小的元素,然后将它放到已排序的元素的末尾。具体实现时,从第一个元素开始,依次遍历所有未排序的元素,找到其中最小的元素,然后将它与第一个未排序的元素交换位置。然后从第二个未排序的元素开始,重复上述操作,直到所有元素都排好序为止。 使用起泡法和选择法将字符串ASCII码值从小到大排列的具体实现方法如下: 起泡法: 1. 将字符串转换为字符数组。 2. 从第一个字符开始,依次比较相邻的两个字符,如果前面的字符的ASCII码值比后面的字符的ASCII码值大,则交换它们的位置。 3. 重复上述操作,直到所有字符都排好序为止。 选择法: 1. 将字符串转换为字符数组。 2. 从第一个字符开始,依次遍历所有未排序的字符,找到其中ASCII码值最小的字符,然后将它与第一个未排序的字符交换位置。 3. 从第二个未排序的字符开始,重复上述操作,直到所有字符都排好序为止。 以上就是使用起泡法和选择法将字符串ASCII码值从小到大排列的方法。 ### 回答2: 字符串是由字符组成的有限序列,每个字符都有其对应的ASCII码值。将字符串按照ASCII码值从小到大排列是一种常见的需求。下面将介绍两种排序方法:起泡法和选择法。 起泡法,又称冒泡排序,是一种简单的排序算法。其基本思想是:在待排序的数列中从前往后依次比较相邻的两个数,如果前一个数大于后一个数,则交换它们的位置。经过第一轮比较后,可以将最大的数移到数列的末尾;再从前往后依次比较相邻的数,完成第二轮排序;以此类推,直到排序完成。 下面是使用起泡法对字符串进行排序的方法: 1. 将待排序的字符串转为字符数组。 2. 从前往后依次比较相邻的两个字符,如果前一个字符的ASCII码值大于后一个字符,则交换它们的位置。 3. 进行第一轮比较后,可以将ASCII码值最小的字符移到字符数组的最前面。 4. 再从前往后依次比较相邻的字符,完成第二轮排序。 5. 以此类推,直到排序完成。 选择法,又称简单选择排序,是一种基于比较的排序算法。其基本思想是:在待排序的数列中选择最小的一个数,将其放置在数列的最前面;再从剩余的数列中选择最小的一个数,将其放置在已排序的数列后面;依此类推,直到所有数都被排序。 下面是使用选择法对字符串进行排序的方法: 1. 将待排序的字符串转为字符数组。 2. 在未排序部分找到ASCII码值最小的字符,将该字符与未排序部分的第一个字符交换。 3. 将已排序部分扩展一个字符,再次在未排序部分找到ASCII码值最小的字符,将该字符与未排序部分的第一个字符交换。 4. 以此类推,直到所有字符都被排序。 总结:起泡法和选择法都是基于比较的简单排序算法,只适用于小规模数据排序。相对而言,起泡法的交换过程较多,而选择法的交换过程相对较少,因此选择法的效率稍高一些。但是对于大规模数据排序,需要使用更加高效的排序算法。 ### 回答3: 字符串ascii码值从小到大排列,通常可以采用两种排序方法,即起泡法和选择法。 起泡法是一种比较简单的排序方法,其基本思想是从第一个元素开始,依次比较相邻的两个元素的大小,如果前面的元素大于后面的元素,则将它们的位置交换。这样一趟比较下来,最大的元素就会浮到最后。接着再从头开始比较,依次将未排序的元素中最大的元素移到最后,直到所有元素都排序好。 使用起泡法对字符串ascii码值从小到大排列可以按以下步骤进行: 1. 将字符串按照字符的ascii码值转换成一个整数数组。 2. 从数组的第一个元素开始,依次比较相邻的两个元素,如果前面的元素大于后面的元素,则将它们的位置交换。 3. 重复步骤2,直到所有元素都排序好。 选择法也是一种比较常用的排序方法,基本思想是依次找出未排序数列中的最小元素,并将其移动到数列的起始位置。接着从剩余未排序的数列中继续寻找最小元素,并将其放在已排序数列的末尾,直到所有元素都排序好。 使用选择法对字符串ascii码值从小到大排列可以按以下步骤进行: 1. 将字符串按照字符的ascii码值转换成一个整数数组。 2. 从数组的第一个元素开始,设其为最小值。 3. 依次扫描数组中剩余未排序的元素,找出其中最小的元素,并记录其下标。 4. 如果最小元素不在数组的起始位置,将最小元素与起始位置的元素交换。 5. 重复步骤3~4,直到所有元素都排序好。 无论是起泡法还是选择法,它们的时间复杂度都是O(n^2),所以对于大规模的数据排序效率并不高,建议采用更高效的排序算法,如归并排序或快速排序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值