• 2、黑化的牛牛--全国模拟(四)


    [编程题] 黑化的牛牛
    时间限制:1秒
    空间限制:32768K
    牛牛变得黑化了,想要摧毁掉地球。但他忘记了开启地球毁灭器的密码。牛牛手里有一个字符串S,牛牛还记得从S中去掉一个字符就恰好是正确的密码,请你帮牛牛求出他最多需要尝试多少次密码。
    如样例所示S = "ABA",3个可能的密码是"BA", "AA", "AB".
    当S = "A", 牛牛唯一可以尝试的密码是一个空的密码,所以输出1. 
    输入描述:
    输入包括一个字符串S,字符串长度length(1 ≤ length ≤ 50),其中都是从'A'到'Z'的大写字母。
     
     
    输出描述:
    输出一个整数,表示牛牛最多需要尝试的密码次数。
     
    输入例子:
    ABA
     
    输出例子:
    3
     
    解题思路:本题使用set来存储,可以自动过滤相同的字符串,然后针对字符串,求出其删掉第0位-第n-1位的全部结果,存入set中,set的大小即为结果数,其中length==1的情况特殊处理。
     1 #include <iostream>
     2 #include <set>
     3  
     4 using namespace std;
     5 //去掉字符串的第i位字符
     6 string fun(string str,int n)
     7 {
     8     int length = str.size();
     9     string tmp;
    10     tmp = str;
    11     for(int i=n;i<length-1;i++)
    12     {
    13         tmp[i] = tmp[i+1];
    14     }
    15  
    16     tmp[length-1] = '';
    17  
    18     return tmp;
    19 }
    20 int main()
    21 {
    22     string s;
    23     while(cin>>s)
    24     {
    25         set<string> res;
    26         int count = 0;
    27         int length = s.size();
    28         if(length == 1)
    29         {
    30             cout<<1<<endl;
    31         }
    32         else
    33         {
    34             for(int i=0;i<length;i++)
    35             {
    36                 string temp;
    37                 temp = fun(s,i);
    38                 res.insert(temp);
    39             }
    40             count = res.size();
    41             cout<<count<<endl;
    42         }
    43     }
    44     return 0;
    45 }


     

  • 相关阅读:
    Persister使用说明
    获取一个目录下的所有文件名称
    bootstrap学习
    bootstrap.文章列表带头像及操作
    初识Lucene.net
    Lucene.net 高亮显示搜索词
    WP7.OnNavigatedTo和OnNavigatedFrom
    SL4.图片下载进度条
    SL4.基本数据验证
    SL4.数据绑定OneWay、OneTime、TwoWay
  • 原文地址:https://www.cnblogs.com/qqky/p/7039576.html
Copyright © 2020-2023  润新知