目录
题目来源:牛客网
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 版权协议,转载请附上原文出处链接和本声明。