cf777D(贪心&&c_str()函数)
2017-02-24 21:41
218 查看
题目链接:http://codeforces.com/contest/777/problem/D
题意:给出n行以#开头的字符串,从原字符串尾部删除尽量少的字符串,使其为非降序排列。
思路:我们可以从最后一个字符串着手,对其前面的字符串进行删除操作,使其不大于前者。遍历到第一个字符串时就得到了我们所需要的字符串啦。
代码:
咋一看好像会超时,不过本题中并没有给出那种很极端的数据
题意:给出n行以#开头的字符串,从原字符串尾部删除尽量少的字符串,使其为非降序排列。
思路:我们可以从最后一个字符串着手,对其前面的字符串进行删除操作,使其不大于前者。遍历到第一个字符串时就得到了我们所需要的字符串啦。
代码:
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const int MAXN=5e5+10; 5 string gg[MAXN]; 6 char cc[MAXN]; 7 8 int main(void){ 9 // ios::sync_with_stdio(false), cin.tie(0), cout.tie(0); 10 int n; 11 cin >> n; 12 for(int i=0; i<n; i++){ 13 scanf("%s", cc); 14 gg[i]=cc; 15 } 16 for(int i=n-2; i>=0; i--){ 17 for(int j=0; gg[i][j]; j++){ 18 if(gg[i][j]>gg[i+1][j]){ 19 gg[i][j]='\0'; 20 }else if(gg[i][j]<gg[i+1][j]){ 21 break; 22 } 23 } 24 } 25 for(int i=0; i<n; i++){ 26 // cout << gg[i].c_str() << endl; 27 printf("%s\n", gg[i].c_str()); //c_str():生成一个const char*指针,指向以空字符终止的数组。 28 } 29 return 0; 30 }
咋一看好像会超时,不过本题中并没有给出那种很极端的数据
相关文章推荐
- php函数之子字符串替换 str_replace
- 编程序将一个字符串的前N个子字符送到一个字符型数组中去,然后再加上一个'\0'(不允许使用strcoy(str1,str2,n)函数)。
- itoa()函数 Stack around the variable 'strtemp' was corrupted !!!???
- 一个用于处理分隔","的函数tf_split_str
- 创建一个接受String或&str的Rust函数
- str_split() 函数
- php函数之子字符串替换 str_replace
- 使用" 参数化基类" 和" 成员函数指针" 模拟实现虚函数
- 处理分页的数据函数GetlistByPage(strSQL, PageSize, PageNo, PageCount, arrList)
- [翻译] Effective C++, 3rd Edition, Item 45: 用 member function templates(成员函数模板) 接受 "all compatible types"(“所有兼容类型”)
- 探索c++的函数pow()的实现方法·数学与程序设计的结合(绝对原创)
- 函数参数有&L,L的区别!
- Winsock程序设计初步之<四> Winsock函数用法说明
- JSP中的字符替换函数 str_replace() 实现!
- PHP4用户手册:函数->CURL
- [转帖]Delphi 函数&属性表
- atoi() & itoa()函数的内部的实现
- JSP中的字符替换函数 str_replace() 实现!
- void FormatHtml(CString &str)
- C++虚函数系列之三:虚函数调用的另类"注入"