输入多个二元组元素,如果有两个二元组元素相等或者倒转之后相等,把计数器加一,最后输出计数器的数值
[[1,2],[2,1],[3,4],[5,6]]
1
输入的每一个数字都是在1-9之间
#include<bits/stdc++.h>
using namespace std;
bool check(int a,int b)
{
if(a==b||(a/10==b%10&&a%10==b/10)) return true;
else return false;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
string s;
cin>>s;
int len=s.size();
vector<int> nums;
for(int i=0;i<len;i++)
{
if(isdigit(s[i])) //cout<<s[i];
nums.push_back(s[i]-'0');
}
int len0=nums.size();
//for(int i=0;i<len0;i++) cout<<nums[i];
vector<int> two;
for(int i=0;i+1<len0;i+=2)
two.push_back(nums[i]*10+nums[i+1]);
//int len1=two.size();
//for(int i=0;i<len1;i++) cout<<two[i]<<endl;
int len1=two.size();
int cnt=0;
for(int i=0;i<len1;i++)
{
for(int j=i+1;j<len1;j++)
{
if(check(two[i],two[j])) cnt++;
}
}
cout<<cnt<<endl;
return 0;
}
用digit函数,把字符串里面的数字分离出来,存到nums数组里面
如果两个数字相等,或者十位等于个位,个位等于十位,就返回true,反之返回false
用计数器记录答案