zoukankan      html  css  js  c++  java
  • 寒假Day46:CodeForces1321CRemove Adjacent字符串+思维

    题目链接:CodeForces - 1321E 

    题意:给出一串长度为n的字符串,遍历整个字符串,若该字符的前或后一个字符是字典序在该字符在字典序的前一位,就可以删除

    问:最多能够删除多少个

    思路:如果直接遍历暴力判断,第一组样例就可以看出不对

    所以最优选择就是从z开始到a去遍历整个字符串

    给两组另外样例:

    10

    bbbbbbabbb

    10

    bbbbbbbbbb

    AC代码:

    #include<bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        int n;
        string a;
        while(cin>>n)
        {
            cin>>a;
            int ans=0;
            for(int i='z'; i>='a'; i--)
            {
                for(int j=0; j<n; j++)
                {
                    if(a[j]==i)
                    {
                        if((j>=1&&(a[j-1]+1==i))||(j<=n-2&&a[j+1]+1==i))
                        {
                            a.erase(j,1);
                            ans++;
                            n--;
                            j=-1;
                        }
                    }
    
                }
            }
            cout<<ans<<endl;
        }
        return 0;
    }
  • 相关阅读:
    java ppt4
    课后作业 2
    课后作业2
    java ppt题目
    CommandParameter设计
    《大道至简》第二章读后感
    8.多态
    7.接口与继承
    6.数组
    字符串
  • 原文地址:https://www.cnblogs.com/OFSHK/p/12450689.html
Copyright © 2011-2022 走看看