[华为机试题]最大连续递增子串

[华为机试题]最大连续递增子串

#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;
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d6e89821525dc9a54c92d4515deedd64.html