牛客:A – 先交换、B – 再交换(C++)

  • Post author:
  • Post category:其他



目录


A – 先交换


实现代码:


B – 再交换


实现代码:


题目来源:牛客网

A – 先交换




实现代码:


#include<bits/stdc++.h>
using namespace std;
int nums[100];
int main()
{
    int count = 0;
    cin >> count;
    while(count--)
    {
        int n;
        cin >> n;
        int ok = 0;
        for(int i = 0; i < n; i++)
        {
            cin >> nums[i];
            if(nums[i] % 2 == 1 && i == 0)
            {
                cout << 0 <<endl;
                ok = 1;
            }
            if(nums[i] % 2 == 1 && i > 0 && ok == 0 && nums[0] > nums[i]) 
            {
                cout << 1 << endl;
                ok = 1;
            }    
        }
        if(ok == 0) cout << -1 <<endl;
    }
    return 0;   
}

B – 再交换



实现代码:


include <bits/stdc++.h>
using namespace std;
int main()
{
	int T;
	cin >> T;
	while (T--)
	{
		int n;
		cin >> n;
		string s1;
		string s2;
		cin >> s1;
		cin >> s2;
        int j = 0;
		for (int i = 0; i < n; i++)
		{
            //相同
            if(s1[i] == s2[j])
            {
                j++;
                continue;
            }
            if(s1[i] != s2[j])
            {
                if(s1[i] > s2[j])
                {
                    cout << i + 1 << " " << j + 1 <<endl;
                    break;
                }
                else
                {
                    //若小于,且不是最后一位,交换最后一位即可,前面已经确定是大于了
                    if(i != n - 1)
                    {
                        cout << n << " " << n <<endl;
                        break;
                    }
                    //若为最后一位,交换第一位即可
                    else
                    {
                        cout << 1 << " " << 1 <<endl;
                        break;
                    }
                }
            }                    
        }
	}
    return 0;
}



版权声明:本文为Cosmoshhhyyy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。