歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> 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;
}

Copyright © Linux教程網 All Rights Reserved