马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
标题:
标签:动态规划(应该是双指针的,不明白)
小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的想法是了下,感觉我的智商堪忧,这个怎么也不是动态规划的题解。- public class Main {
- public static int solution(String S, String T) {
- //最少的前缀操作次数,说实话,做了这道题目感受不到一点动态规划的感觉
- int deleteCount = 0;
- if(S.length() > T.length()){
- deleteCount = S.length() - T.length();
- }
-
- int i = 0;
- int j = 0;
- int count = 0;
- while(i < Math.min(S.length(),T.length())){
- if(S.charAt(i) != T.charAt(j)){
- count ++;
- }
- i++;
- j++;
- }
- return count + deleteCount;
- }
- public static void main(String[] args) {
- System.out.println(solution("aba", "abb") == 1);
- System.out.println(solution("abcd", "efg") == 4);
- System.out.println(solution("xyz", "xy") == 1);
- System.out.println(solution("hello", "helloworld") == 0);
- System.out.println(solution("same", "same") == 0);
- }
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |