Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / [华为机试题]最大连续递增子串

[华为机试题]最大连续递增子串#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
    string s;
 string::size_type  length(0);
 cin>>s;
 string::size_type num = s.size();
 vector<char> ss, ss1;
 ss.clear();
 ss1.clear();
 for (string::size_type i = 0; i != num-1; i++)
 {
  if (s.at(i+1) > s.at(i))
  {
   if (i == num - 2)
   {
    cout<<s;
    return 0;
   }
  }
  else
   break;
 }
   
 /*for (string::size_type i = 0; i != num - 1; i++)
    {
      if (s.at(0) == s.at(i))
      {
    if (i == num -2)
    {
   cout<<(s.at(0));
   return 0;
    }
      }
 else
    break;
    }*/
 for (string::size_type i = 0; i != num-1; i++)
    { 
       
  if (s.at(i+1) > s.at(i))
  {
   if (ss.empty())
   {
    ss.push_back(s.at(i));
   }
            ss.push_back(s.at(i+1));
   
       
  }
  else
  {
         if (ss.size() > length)
         {
      length = ss.size();
      ss1 = ss;
         }
   else if (ss.size() == length)
   {
      if (ss > ss1)
      {
     ss1 = ss;
      }
   }
      ss.clear();
            }
          if (i == num -2)
          {
   if (ss.size() > length)
   {
      length = ss.size();
      ss1 = ss;
   }
   else if (ss.size() == length)
   {
      if (ss > ss1)
      {
     ss1 = ss;
      }
   }
          } 
 
    }
 for (vector<char>::iterator iter =ss1.begin() ; iter != ss1.end(); iter++)
 {
  cout<<(*iter);
 }
   
 return 0;
}