最少前缀利用标题--感受不到动态规划,怎么办怎么办

[复制链接]
发表于 2025-12-23 17:34:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
标题:
标签:动态规划(应该是双指针的,不明白)
小U和小R有两个字符串,分别是S和T,如今小U须要通过对S举行多少次利用,使其酿成T的一个前缀。利用可以是修改S的某一个字符,大概删除S末端的字符。如今你须要资助小U盘算出,最少须要多少次利用才气让S酿成T的前缀。

测试样例

样例1:
输入:S = "aba", T = "abb"
输出:1
样例2:
输入:S = "abcd", T = "efg"
输出:4
样例3:
输入:S = "xyz", T = "xy"
输出:1
样例4:
输入:S = "hello", T = "helloworld"
输出:0
样例5:
输入:S = "same", T = "same"
输出:0

不可,感觉我的脑筋废了,第一遍是用动态规划办理该标题,但是!wrong!参考了下谁人Al的想法是了下,感觉我的智商堪忧,这个怎么也不是动态规划的题解。
  1. public class Main {
  2.     public static int solution(String S, String T) {
  3.         //最少的前缀操作次数,说实话,做了这道题目感受不到一点动态规划的感觉
  4.         int deleteCount = 0;
  5.         if(S.length() > T.length()){
  6.             deleteCount = S.length() -  T.length();
  7.         }
  8.         
  9.         int i = 0;
  10.         int j = 0;
  11.         int count = 0;
  12.         while(i < Math.min(S.length(),T.length())){
  13.             if(S.charAt(i) != T.charAt(j)){
  14.                 count ++;
  15.             }
  16.             i++;
  17.             j++;
  18.         }
  19.         return count + deleteCount;
  20.     }
  21.     public static void main(String[] args) {
  22.         System.out.println(solution("aba", "abb") == 1);
  23.         System.out.println(solution("abcd", "efg") == 4);
  24.         System.out.println(solution("xyz", "xy") == 1);
  25.         System.out.println(solution("hello", "helloworld") == 0);
  26.         System.out.println(solution("same", "same") == 0);
  27.     }
  28. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表