UVa Solution 10260 – Soundex


The problem link is
 UVa 10260 - Soundex 

Solution 1:

#include <stdio.h>
#include<string.h>

int GetSoundCode(char ch)
{
    switch(ch)
    {
    case 'B': case 'F': case 'P': case 'V':
        return 1;
    case 'C': case 'G': case 'J': case 'K': case 'Q': case 'S': case 'X': case 'Z':
        return 2;
    case 'D': case 'T':
        return 3;
    case 'L':
        return 4;
    case 'M': case 'N':
        return 5;
    case 'R':
        return 6;
    }
    return -1;
}
int main()
{
    char str[20];
    int i,tmp,val;
    while(scanf("%s",str)==1)
    {
        tmp=0;
        for(i=0;i<strlen(str);i++)
        {
            val = GetSoundCode(str[i]);
            if(val>-1 && tmp != val)
            {
                printf("%d",val);
            }
            tmp = val;
        }
        printf("\n");
    }    
    return 0;
}

Run time: 0.009

Solution  2:

#include <stdio.h>
#include<string.h>
int main()
{
    char ch[6][8]={{'B', 'F', 'P','V'},
    {'C', 'G', 'J', 'K', 'Q', 'S', 'X', 'Z'},
    {'D','T'},{'L'},
    {'M','N'},{'R'}
    };
    int value[6]={1,2,3,4,5,6};
    char str[20];
    int i,j,k,tmp,find;
    while(scanf("%s",str)==1)
    {
        tmp=0;
        for(k=0;k<strlen(str);k++)
        {    
            find = 0;
            for(i=0;i<6;i++)
            {
                for(j=0;j<8;j++)
                {
                    if(ch[i][j] == str[k])
                    {
                        if(tmp != value[i])
                        {
                            printf("%d",value[i]);
                        }
                        tmp = value[i];
                        find = 1;
                        break;
                    }
                    else if(ch[i][j] == 0)
                        break;
                }
            }
            if(find == 0)
                    tmp = -1;
        }
        printf("\n");
    }    
    return 0;
}

Run time: 0.006
User Name on UVA: refatsardar

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: