zoukankan      html  css  js  c++  java
  • 删数字问题 贪心算法 1472

    题目描述

    在给定的n个数字的数字串中,删除其中k(k<n)个数字后,剩下的数字按原次序组成一个新的正整数。请确定删除方案,使得剩下的数字组成的新正整数最大.

    输入描述

    多组输入,每组输入一个多位整数n和一个表示删除数字个数的整数k。 k < 50

    输出描述

    对于每组输入,输出剩下的最大正整数

    样例输入

    762191754639820463 6

    样例输出

    975639820463

    思想:从头开始,删除左边比右边小的数字

    注意字符串的操作方法   s.erase(位置,个数)删除

     1 #include<iostream>
     2 #include<string>
     3 using namespace std;
     4 int main(){
     5     int n;
     6     string s;
     7     while(cin>>s>>n){
     8         int a,b,l,i,j,k,fg;
     9         l=s.length();
    10         for(i=0;i<n;i++){
    11             for(j=0;j<l-1;j++){
    12                 a=s[j]-'0';
    13                 b=s[j+1]-'0';
    14                 if(a<b){
    15                     s.erase(j,1); 
    16                     l=l-1;
    17                     break;
    18                 }
    19             }
    20         }
    21         cout<<s<<endl;
    22     }
    23     return 0;
    24 }
    转载请标明出处
  • 相关阅读:
    242. Valid Anagram
    [wikioi]关押罪犯
    [wikioi]数的划分
    [wikioi]能量项链
    [wikioi]线段覆盖 2
    [wikioi]乌龟棋
    POJ1011 Sticks
    *[leetcode]Word Break II
    [leetcode]Word Break
    《高性能网站建设指南》笔记
  • 原文地址:https://www.cnblogs.com/zq-dmhy/p/11084275.html
Copyright © 2011-2022 走看看