Problem : Alpha Numeric Sorting
Given text comprising of words and numbers, sort them both in ascending order and print them in a manner that a word is followed by a number. Words can be in upper or lower case. You have to convert them into lowercase and then sort and print them.
Input Format:
First line contains total number of test cases, denoted by N
Next N lines, each contains a text in which words are at odd position and numbers are at even position and are delimited by space
First line contains total number of test cases, denoted by N
Next N lines, each contains a text in which words are at odd position and numbers are at even position and are delimited by space
Output Format:
Words and numbers sorted in ascending order and printed in a manner that a word is followed by a number.
Words and numbers sorted in ascending order and printed in a manner that a word is followed by a number.
Constraints:
1. Text starts with a word
2. Count of words and numbers are the same.
3. Duplicate elements are not allowed
4. Words should be printed in lower case.
5. No special characters allowed in text.
SNo. | Input | Output |
---|---|---|
1 | 2 Sagar 35 sanjay 12 ganesH 53 ramesh 19 Ganesh 59 suresh 19 rakesh 26 laliT 96 | ganesh 12 ramesh 19 sagar 35 sanjay 53 ganesh 19 lalit 26 rakesh 59 suresh 96 |
SOLUTION:-
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
char s[100][100],t[100],e[100][100],o[100][100];
int i=0,j,k=0,swap,p,n,c,d,m=0,q,w,a[1000];
do
{
scanf("%s %d",&s[i],&a[i]);
i++;
}
while(getchar() != '\n');
for(w=0;w<i;w++)
{
q=0;
while(s[w][q] != '\0')
{
s[w][q] = tolower(s[w][q]);
q++;
}
}
for(w=1;w<i;w++)
{
for(j=1;j<i;j++)
{
if(strcmp(s[j-1],s[j])>0)
{
strcpy(t,s[j-1]);
strcpy(s[j-1],s[j]);
strcpy(s[j],t);
}
}
}
for (c = 0 ; c < i-1; c++)
{
for (d = 0 ; d < i - c - 1 ; d++)
{
if (a[d] > a[d+1])
{
swap=a[d];
a[d]=a[d+1];
a[d+1]=swap;
}
}
}
for(w=0;w<i;w++)
{
printf("%s %d ",s[w],a[w]);
}
return 0;
}
Happy Coding :) :')
python code
ReplyDeletethe above C code is not working
ReplyDelete