69 排序高手

2023-12-21 17:54:15

数据以字符串形式输入,期间转到数组内

#include <iostream> 
#include <string>
#include <vector>

using namespace::std;
using std::cout;
using std::cin; 

int pxgs(vector<int>& nums) 
{
    int n=nums.size();
    int l=0,r=n-1;
    while(l<n-1)
	{
        if(nums[l]<=nums[l+1])  
		{
        	l++;
		}
        else    
		{
        	break;
		}
    }
    if(l == n-1)  
	{
    	return 0;
	} 
    int x = l+1;
    for(int i=l+1; i<n; i++)
	{
        if(nums[i]<=nums[x])    
		{
        	x = i;
		}
    }
    while(l>=0)
	{
        if(nums[l]>nums[x]) 
		{
        	l--;
		}
        else    
		{
        	break;
		}
    }
    while(r>0)
	{
        if(nums[r]>=nums[r-1])  
		{
        	r--;
		}
        else    
		{
        	break;
		}
    }
    x = r-1;
    for(int i=r-1; i>=0; i--)
	{
        if(nums[i]>=nums[x])    
		{
        	x = i;
		}
    }
    while(r<n)
	{
        if(nums[r]<nums[x]) 
		{
        	r++;
		}
        else    
		{
        	break;
		}
    }
    return r-l-1;
}

int main() 
{
	string s;
	cin >> s;
	int start=0;
	int num=0;
	vector<int> nums;
	for (int i=0; i<s.size(); i++) 
	{
		if (s[i] == ',') 
		{
			string temp = s.substr(start, i-start);
			nums.push_back(atoi(temp.c_str()));
			num++;
			start = i+1;
		}
	}
	string temp = s.substr(start, s.size()-start+1);
	nums.push_back(atoi(temp.c_str()));
	std::cout << pxgs(nums);
    return 0;  
}

文章来源:https://blog.csdn.net/qq_64654845/article/details/135134906
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。