变位词程序c++实现

原创 2015年07月07日 20:50:55

#include <stdio.h>

#include <string.h>

#include <vector>

#include <string>

#include <algorithm>

#include <iostream>

using namespace std;

const int MAX_N = 100+5;

const int MAX_WORDS = 1000;//设置最多可对1000个变位词进行处理

char line[MAX_N];//读文件的缓冲区


struct words{

    char word[MAX_N];

    char sign[MAX_N];

}a[MAX_WORDS];//变位词结构体,word为单词本身,sign为单词的键值


bool operator < (const words &c, const words &d){

    if(strcmp(c.sign,d.sign)<0)

        return true;

    else

        return false;

}// 运算符重载,为了使用sort函数对结构体进行排序


int main(){

    FILE *fp1 = fopen("/Users/mona/changeWords/changeWords/1.txt","r");

    char oldSign[MAX_N] = " ";

    int cnt = 0;//记录单词个数

    while(fgets(line,MAX_N,fp1)){

        int pos;

        pos = int(strlen(line));

        if(line[pos-1]=='\n'line[pos-1] = '\0';

        strcpy(a[cnt].word,line);

        sort(line,line+strlen(line));

        strcpy(a[cnt].sign,line);

        cnt ++;

    }

    sort(a,a+cnt);// 将具有相同标识的单词归拢到一起

    for(int i=0;i<cnt;i++){

        if(strcmp(oldSign,a[i].sign)!=0){

            printf("\n");

        }

        strcpy(oldSign,a[i].sign);

        printf("%s ",a[i].word);

        

    }

    printf("\n");


    return 0;

}

C++中的变位词问题

题目:给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 这道题目是个典型的变位词问题,即一个字符串是否是另一个字符串的乱序版本,解题思路很多,下面总结三种方法,有...
  • moses1213
  • moses1213
  • 2016年07月15日 20:35
  • 264

第二章 啊哈!算法(变位词)

给定一个英语字典,找出其中的所有变位词集合。例如,“pots”、“stop”和“tops”互为变位词,因为每一个单词都可以通过改变其他单词中字母的顺序来得到。 “解决这个问题的许多方法都出奇地低...
  • sgs1018
  • sgs1018
  • 2014年09月09日 21:58
  • 975

变位词程序的实现

《编程珠玑》第二章有一个变位词程序的实现问题,所谓变位词就是把某个单词中字母位置顺序加以改变形成的新词。文中提到的变位词程序设计思想是按三阶段的”管道“组织,第一阶段标志单词,第二阶段排序标志后的文件...
  • u012333003
  • u012333003
  • 2013年12月26日 20:25
  • 962

C++实现判断两个单词是否为变位词

C++实现判断两个单词是否为变位词
  • wordwarwordwar
  • wordwarwordwar
  • 2014年10月10日 15:37
  • 1094

C语言实现检查单词是否为变位词(相同字母的重新排列)

#include int main() { int a[26]={0},i=0,n=0,j=0; int arr[20]={0}; char ch='\0'; ...
  • wuweiweinanjing
  • wuweiweinanjing
  • 2011年10月24日 22:20
  • 4080

在一个词典中找出所有的变位词

编程珠玑题: java实现 package program.pearls; import java.io.*; import java.util.*; import java.util....
  • jiutianhe
  • jiutianhe
  • 2012年09月13日 17:25
  • 828

(五)判断两个词是否为变位词的算法

Given two strings s and t, write a function to determine if t is an anagram of s. For example, s...
  • qixinbruce
  • qixinbruce
  • 2016年04月06日 15:10
  • 569

变位词程序

如果两个单词,他们的字母组成一样而字母位置有区别,那么就称这两个单词为变位词。如 pans 和 span , tops 和 stop。 所有的变位词,对他们按字母顺序排序,得到相同的字符串(这个字符串...
  • qyxqyxqyx
  • qyxqyxqyx
  • 2013年08月30日 16:42
  • 535

经典算法面试题目-判断两个字符串是否是变位词(1.4)

题目Write a method to decide if two strings are anagrams or not.写一个函数判断两个字符串是否是变位词。解答变位词(anagrams)指的是组...
  • qq_26525215
  • qq_26525215
  • 2016年07月23日 23:30
  • 13333

编程珠玑:变位词程序的实现

编程珠玑,变位词的实现 变位词的实现
  • u013686805
  • u013686805
  • 2014年04月10日 10:19
  • 413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:变位词程序c++实现
举报原因:
原因补充:

(最多只允许输入30个字)