zoukankan      html  css  js  c++  java
  • (字典序问题) nyoj1542-最小字符串

    题目描述:

    给你一个由小写字母组成的字符串,最多删除其中一个字符,使其字典序最小。

    字典序概念
    在数学中,字典或词典顺序(也称为词汇顺序,字典顺序,字母顺序或词典顺序)是基于字母顺序排列的单词按字母顺序排列的方法。 
    这种泛化主要在于定义有序完全有序集合(通常称为字母表)的元素的序列(通常称为计算机科学中的单词)的总顺序。--百度百科

    简单地说就是英文字典上出现的次序

    输入描述:

    多组输入(输入不超过100组)
    每组数据占一行,包含一个字符串,字符串长度不超过1000

    输出描述:

    每组输入,输出一行能够形成的最小字符串

    样例输入:

    abc
    aba

    样例输出:

    ab
    aa

    -----------------------------------------------------------------------------------------------------
    审题!!!!!,是字典序问题,这个问题指的是最多删掉其中一个字符使其字典序最小,不能改变字符串内字符的排序。比如在abc中删掉一个中,ab是最理想的,ac,bc的字典序均比它大
    所以,设置代表初始位置的数字的初始值为字符串的最大长度减去1(假设下标是从0开始的)
    C++代码:
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    char str[1003];
    int main(){
        while(~scanf("%s",str)){
            int len = strlen(str);
            int index = len-1;
            for(int i = 1; i < len; i++){
                if(str[i] - str[i-1] < 0){
                    index = i - 1;
                    break;
                }
            } 
            for(int i = 0; i < len; i++){
                if(i != index){
                    cout<<str[i];
                }
            }
            cout<<endl;
        }
        return 0;
    }
  • 相关阅读:
    poj3252Round Numbers
    poj2282The Counting Problem(组合)
    POJ1150he Last Non-zero Digit(组合)
    poj1715Hexadecimal Numbers(数位dp)
    Codeforces Beta Round #98 (Div. 2)(A-E)
    mysql被收购 用mariadb (转)
    vsftpd配置 (转)
    Linux文件目录结构详解 (转)
    Linux创建ftp并设置权限以及忘记ftp帐号(密码)修改 (转)
    Linux环境Nginx安装、调试以及PHP安装(转)
  • 原文地址:https://www.cnblogs.com/Weixu-Liu/p/10659704.html
Copyright © 2011-2022 走看看