ANAGR - Anagrams
ANAGR - Anagrams
Solution to ANAGR spoj - Anagrams spoj
#include<stdio.h> char str1[101],str2[101]; int main() { int t,i,j,k; char ch; scanf("%i%c",&t,&ch); while(t--) { gets(str1); gets(str2); int arr1[26]={0},arr2[26]={0},arr3[26]={0},flag = 0; i = -1; while(str1[++i] != 0) { if(str1[i] >= 'A' && str1[i] <= 'Z') arr1[str1[i] - 65]++; else if(str1[i] >= 'a' && str1[i] <= 'z') arr1[str1[i] - 97]++; } i = -1; while(str2[++i] != 0) { if(str2[i] >= 'A' && str2[i] <= 'Z') arr2[str2[i] - 65]++; else if(str2[i] >= 'a' && str2[i] <= 'z') arr2[str2[i] - 97]++; } for(i=0; i<26; i++) { if(!flag) { if(arr1[i] > arr2[i]) { flag = 1; arr3[i] = arr1[i] - arr2[i]; } else if(arr1[i] < arr2[i]) { flag = 2; arr3[i] = arr2[i] - arr1[i]; } } else if(flag == 1) { if(arr2[i] > arr1[i]) { flag = 3; break; } else arr3[i] = arr1[i] - arr2[i]; } else { if(arr2[i] < arr1[i]) { flag = 3; break; } else arr3[i] = arr2[i] - arr1[i]; } } if(flag == 1 || flag == 2) { int count=0,hold; for(i=0; i<26; i++) if(arr3[i]%2) { count++; hold = i; arr3[i] -= 1; } if(count > 1) flag = 3; else { for(i=0; i<26; i++) { for(j=0; j<arr3[i]/2; j++) printf("%c",i+97); } if(count == 1) printf("%c",hold+97); for(i=25; i>=0; i--) { for(j=0; j<arr3[i]/2; j++) printf("%c",i+97); } printf("\n"); } } if(!flag) printf("YES\n"); else if(flag == 3) printf("NO LUCK\n"); } return 0; }
No comments:
Post a Comment
Your comment is valuable to us