美文网首页
[35]最大子序列-百度2018秋

[35]最大子序列-百度2018秋

作者: jdzhangxin | 来源:发表于2018-10-28 17:22 被阅读15次

1.题目描述

对于字符串x和y,如果擦除x中的某些字母(有可能全擦掉或者都不擦)能够得到y,我们就称y是x的子序列。例如."ncd"是"nowcoder"的子序列,而"xt"不是。
现在对于给定的一个字符串s,请计算出字典序最大的s的子序列。

  • 输入描述:
    输入包括一行,一个字符串s,字符串s长度length(1≤length≤50).
    s中每个字符都是小写字母
  • 输出描述:
    输出一个字符串,即字典序最大的s的子序列。
  • 输入示例:
    test
    
  • 输出示例:
    tt
    

2.题目解析

字典序是单词按照字母序排列的顺序。如果第一个字母相同,比较第二个,依次类推。
例如:ab低于bcabc高于aba

贪心法:每次取最优解。从前往后查找最大字母,然后再查找第二大字母,以此类推。

3.参考答案

#include <bits/stdc++.h>
using namespace std;

int find_max(string s,int start){
    int pos = start;
    char max_char = s[pos];
    for(int i=start+1;i<s.size();++i){
        if(s[i] > max_char){
            max_char = s[i];
            pos = i;
        }
    }
    return pos;
}

int main(){
    string s;
    cin >> s;
    string res;
    int pos = 0;
    while(pos < s.size()){
        pos = find_max(s,pos);
        res.append(1,s[pos]);
        ++pos;
    }
    cout << res;
}
#include <bits/stdc++.h>
using namespace std;

int main() {
  string s;
  cin >> s;
  string res;
  while (!s.empty()) {
    // 查找最大字母的位置
    string::iterator it = max_element(s.begin(), s.end());
    // 把最大字母放到结果种
    res.append(1,*it);
    // 删除最大字母前的部分,继续查找
    s.erase(s.begin(), it + 1);
  }
  cout << res << endl;
  return 0;
}

牛客题目

相关文章

  • [35]最大子序列-百度2018秋

    1.题目描述 对于字符串x和y,如果擦除x中的某些字母(有可能全擦掉或者都不擦)能够得到y,我们就称y是x的子序列...

  • 最大子序列-(百度2018)

    题目:对于给定的字符串,请计算出字典序最大的s子序列;输入:test输出:tt分析:1.子序列:对于字符串x和y,...

  • 最长子序列问题

    最大子序列最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5...

  • 刷算法题:求一个序列的最大子序列之和!

    求一个序列的最大子序列之和! 不是求最大子序列之和嘛!我脑子居然就一直关注到了最大子序列上去了,导致我想着实现代码...

  • LeetCode 152. 乘积最大子序列(Maximum Pr

    152. 乘积最大子序列 乘积最大子序列给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至...

  • 算法导论:最大子序列和

    算法导论:最大子序列和 问题描述:什么是最大子序列和呢?就是给定一组序列,所有子序列中和最大的那一组序列。比如这里...

  • 最大子序列和问题(C语言)

    最大子序列和(maxSubSeqSum) 时间复杂度:T(N)=O(N3) 最大子序列和改进1(maxSubSeq...

  • 递归求最大子串序列长度

    递归求最大子串序列长度 运行结果

  • 子串和子序列问题集合

    最大子序列和 最长连续序列 输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 ...

  • 最大子序列

    挑战 5:最大子序列子序列是一个列表中的一个或多个相邻元素的集合。例如,153是415368的一个子序列。子序列1...

网友评论

      本文标题:[35]最大子序列-百度2018秋

      本文链接:https://www.haomeiwen.com/subject/bqtpoftx.html