美文网首页
最大子序列-(百度2018)

最大子序列-(百度2018)

作者: 天使的流浪 | 来源:发表于2019-01-10 10:14 被阅读0次

题目:对于给定的字符串,请计算出字典序最大的s子序列;
输入:test
输出:tt
分析:
1.子序列:对于字符串x和y,如果擦除x中的某些字母(有可能全擦或者都不擦),能够得到y,我们称y为x的子序列;(在删除一些字符的基础上,不改变原有的字符串排列顺序)
2.字典序:对于字符串,先按首字母排列,如果首字母相同,再按第二个字符排序;('12'<'13')
实现(基于贪心):从后往前遍历,设置当前字符为最后一个字符,遇到等于或者大于该字符的则添加,当前字符为该字符,否则去掉,最后逆序输出;(在遍历过程中保证,之后添加的元素大于等于之前的最大元素);
该题目中最后一个元素肯定在结果中:
① 当最后一个元素最小时,遍历其他元素结束后,加入最后一个元素;
②当最后一个元素最大时,直接输出该元素,其他元素不加入;
③当最后一个元素处于中间大小时,比它大的需要加入;
所以遍历过程中参照最后一个元素,考虑其他元素是否可以加入;

package com.bj.baidu;
/**
 * 最大子序列:字典序('1'<'12'<'13')
 * ;
 */
import java.util.Scanner;

public class Test4 {
    @SuppressWarnings("resource")
    public static void main(String[] args) {
        //1.输入字符串
         String str = new Scanner(System.in).nextLine();
         StringBuffer sb = new StringBuffer();
         char chars [] = str.toCharArray();
         char c = chars[chars.length-1];
         sb.append(c);
         // 2.逆序比较大小,比当前的大则加入
         for (int i = chars.length-2; i >=0; i--) {
            if (chars[i]>=c) {
                sb.append(chars[i]);
                c = chars[i];
            }
        }
         //3.结果逆序输出
        char chars1 [] = sb.toString().toCharArray();
        for (int i = chars1.length-1; i>=0; i--) {
            System.out.print(chars1[i]);
        }
    }
}

知识点:
1.StringBuffer、char数组以及String的操作;
2.对于题目分析,分析结果,考虑其中关联;

相关文章

  • 最大子序列-(百度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...

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

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

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

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

  • 子串和子序列问题集合

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

  • 最大子序列

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

网友评论

      本文标题:最大子序列-(百度2018)

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