zoukankan      html  css  js  c++  java
  • PTA 最多删除3个字符(DP)

    给定一个全部由小写英文字母组成的字符串,允许你至多删掉其中 3 个字符,结果可能有多少种不同的字符串?

    输入格式:

    输入在一行中给出全部由小写英文字母组成的、长度在区间 [4, 1] 内的字符串。

    输出格式:

    在一行中输出至多删掉其中 3 个字符后不同字符串的个数。

    输入样例:

    ababcc
    

    输出样例:

    25
    

    提示:

    删掉 0 个字符得到 "ababcc"。

    删掉 1 个字符得到 "babcc", "aabcc", "abbcc", "abacc" 和 "ababc"。

    删掉 2 个字符得到 "abcc", "bbcc", "bacc", "babc", "aacc", "aabc", "abbc", "abac" 和 "abab"。

    删掉 3 个字符得到 "abc", "bcc", "acc", "bbc", "bac", "bab", "aac", "aab", "abb" 和 "aba"。

    (由于是准备天梯赛,虽然没有写出来的这道题,但是还有写出了一些骗分的代码)

     1 #include<string>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<stdio.h>
     5 #include<string.h>
     6 #include<set>
     7 using namespace std;
     8 string s,s1,s2,s3;
     9 set<string>sum;
    10 
    11 int main(){
    12     sum.clear();
    13     ios::sync_with_stdio(false);
    14     getline(cin,s);
    15     sum.insert(s);
    16     set<sting>iterator it; 
    17     int l = s.size();
    18     for(int i = 0 ; i < l ; i++){
    19         s1 = s;
    20         s1.erase(i,1);
    21         sum.insert(s1);
    22         for(int j = 0 ; j < i ; j++){
    23             s2 = s1;
    24             s2.erase(j,1);
    25             sum.insert(s2);
    26             for(int k = 0 ; k < j ; k++){
    27                 s3 = s2;
    28                 s3.erase(k,1);
    29                 sum.insert(s3);
    30             }
    31         }
    32     }
    33     printf("%d",sum.size());  
    34     return 0;
    35 } 
    骗分代码

    当然缺点也很明显,但是可以钻前面数据小的空子,错误的话就在时间复杂度上,即使用string和set写出的代码十分方便,但是实际上string和char的在删除一个字符串之后,将后面的字符都向前面移动一位,因此起事件复杂度还是O(n)。而题目的数据范围是[4,10e6],取最大值算,时间复杂度为O(C(3,10e6)),百分百会爆。

    一个从很久以前就开始做的梦。

  • 相关阅读:
    Vue.js中学习使用Vuex详解
    vuex存储和本地存储(localstorage、sessionstorage)的区别
    Java 编译与反编译
    Vue导航守卫beforeRouteEnter,beforeRouteUpdate,beforeRouteLeave详解
    Vue生命周期简介和钩子函数
    微信开发----被动回复用户消息
    C#4.0 System.Dynamic
    Mvc5 控制器,视图简单说明
    JQuery 禁用后退按钮
    防止用户多次点击
  • 原文地址:https://www.cnblogs.com/DreamACMer/p/10603153.html
Copyright © 2011-2022 走看看