回 帖 发 新 帖 刷新版面

主题:字符易位破译

[size=3][i][b]编写一个函数,检查两个单词是否是字母易位词。两个单词如果包含相同的字母,次序不同,则称为字母易位词。例如:“silent”和“listen”是字母易位词。
提示:先对单词进行排序,再进行比较[/b][/i][/size]
我想用数组来做,但是感觉首先就得判断输入的单词的字母数。然后最重要的就是对单词中的字母进行排序了。

回复列表 (共2个回复)

沙发


感觉还是这个论坛亲切!!!

对于楼主的这个题目,如果只要判断是不是所谓的字母易位词的话,并不要先对单词排序,只要单词里面的每种字母的数目一样才有可能是字母易位词,然后排除它们是不是相等就好了.下面给出我的伪代码.
[code=c]
int
fun(const char *s1,const char *s2)
{

    int count[128] = { 0 };
    int sub = -1;

    if  (   !s1  ||  !s2   )   return -1;
    
    for (   --s1; *++s1;   )   ++count[ *s1 ];
    for (   --s2; *++s2;   )   --count[ *s2 ];

    for (   sub=-1;++sub<128;   )
        if  (   count[ sub ]    )  return 0;//不是字母易位词  

    return   1;//是
}
[/code]

板凳

寻找中国的最优秀的网商领袖精英  
当今世界正经历着全球经济一体化的大潮,中国本土企业也因此面临着前所未有的机遇与挑战。
在这场洗礼中,哪些互联网平台有能力成为世界级的电子商务平台?网商精英要怎样做,才能最终成长为世界级网商精英领袖?
淘宝商盟平台震撼登场,携手淘宝30万商家联盟购物商城。
平台刚刚启动,互联网的网商精英请咨询qq: 908889846 
占领市场第一先机,合力打造网商系统!
淘宝商盟官网   www.taobaosm.com
 http://blog.sina.com.cn/tbsm8
淘宝商盟奖励制度

我来回复

您尚未登录,请登录后再回复。点此登录或注册