zoukankan      html  css  js  c++  java
  • Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) C. Remove Adjacent(字符串,贪心,枚举)

    题意:

    给你一个由小写字母组成的字符串,若串中两个相邻元素字典序中也相邻,移除较大字母,问最多能移除多少个字母。

    思路:

    从大到小依次枚举。

    Tips:

    注意下标的处理。

    以小消大:

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n;cin>>n;
        string s;cin>>s;
        int ans=0;
        for(char c='y';c>='a';c--){
            for(int i=0;i<s.size();i++){
                if(s[i]==c){
                    while(i-1>=0&&s[i-1]==s[i]+1)
                        s.erase(i-1,1),--i,++ans;
                    while(i+1<s.size()&&s[i+1]==s[i]+1)
                        s.erase(i+1,1),++ans;
                }
            }
        }
        cout<<ans;
        return 0;
    }

    以大寻小:

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n;cin>>n;
        string s;cin>>s;
        int ans=0;
        for(char c='z';c>='b';c--){
            for(int i=0;i<s.size();i++){
                while(i-1>=0&&s[i-1]==s[i]-1&&s[i]==c)
                    s.erase(i,1),++ans;
                while(i+1<s.size()&&s[i+1]==s[i]-1&&s[i]==c)
                    s.erase(i,1),--i,++ans;
            }
        }
        cout<<ans;
        return 0;
    }
  • 相关阅读:
    回顾C#3.0新特性(3)
    第五周作业
    第六周基础作业
    第三周syh
    基础作业
    第七周作业
    2019年春季学期第四周作业
    第八周作业
    .Net 反射
    C#中SqlParameter
  • 原文地址:https://www.cnblogs.com/Kanoon/p/12519905.html
Copyright © 2011-2022 走看看