题目描述:
给你一个由小写字母组成的字符串,最多删除其中一个字符,使其字典序最小。字典序概念在数学中,字典或词典顺序(也称为词汇顺序,字典顺序,字母顺序或词典顺序)是基于字母顺序排列的单词按字母顺序排列的方法。 这种泛化主要在于定义有序完全有序集合(通常称为字母表)的元素的序列(通常称为计算机科学中的单词)的总顺序。--百度百科
简单地说就是英文字典上出现的次序
输入描述:
多组输入(输入不超过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;
}
转载于:https://www.cnblogs.com/Weixu-Liu/p/10659704.html