zoukankan      html  css  js  c++  java
  • poj 1318Word Amalgamation

    题目链接:http://poj.org/problem?id=1318

    /*题意:在字母乱序的单词里面找到字母相同的字典里面的单词*/

    /*此题的主要思路是要将字符排序,然后找对应,如果相同,那么就将此按字典序将字母一样的单词输出,
    本人觉得此题的关键的问题是要将字符排序,那么就会出现二维字符数组的排序问题,
    二维字符数组排序有很多种方法(因为二维字符数组不能直接复制,所以不能直接用sort()排序),
    1.可以用到结构体
    2.指针
    3.可以将二维的字符数组转化成一维的字符数组(以下代码就是用的这种方法)
    代码优化:将待确定的字符直接用一维的字符数组,然后排序,直接与第一部分的单词相比较
    */

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 using namespace std;
     6 char str1[100][7],str2[100][7];
     7 char tra1[100][7],tra2[100][7];
     8 char temp[6];
     9 
    10 int cmp(const void *a,const void *b)
    11 {
    12 return(strcmp((char*)a,(char*)b));
    13 }
    14 
    15 int main(){
    16 int len1=0,len2=0; //计算str1与str2的长度
    17 for(int i=0;i<100;i++){
    18 cin>>str1[i];
    19 if(str1[i][0]=='X'){
    20 break;
    21 }
    22 len1++;
    23 }
    24 qsort(str1,len1,sizeof(str1[0]),cmp);
    25 for(int i=0;i<len1;i++){
    26 strcpy(tra1[i],str1[i]); //复制
    27 }
    28 for(int i=0;i<100;i++){
    29 cin>>str2[i];
    30 strcpy(tra2[i],str2[i]); //复制
    31 if(str2[i][0]=='X'){
    32 break;
    33 }
    34 len2++;
    35 }
    36 //将字符按照asc码的形式进行排序
    37 
    38 for(int i=0;i<len1;i++){
    39 int len3=strlen(str1[i]);
    40 strcpy(temp,tra1[i]);
    41 sort(temp,temp+len3);
    42 strcpy(tra1[i],temp);
    43 // cout<<tra1[i]<<endl;
    44 }
    45 for(int i=0;i<len2;i++){
    46 int len4=strlen(str2[i]);
    47 strcpy(temp,tra2[i]);
    48 sort(temp,temp+len4);
    49 strcpy(tra2[i],temp);
    50 
    51 }
    52 //比较字符串是否相同
    53 int num;
    54 for(int i=0;i<len2;i++){
    55 num=0;
    56 for(int j=0;j<len1;j++){
    57 if(strcmp(tra2[i],tra1[j])==0){
    58 cout<<str1[j]<<endl;
    59 num++;
    60 }
    61 if(j==len1-1){
    62 if(num==0){
    63 printf("NOT A VALID WORD
    ");
    64 }
    65 printf("******
    ");
    66 }
    67 }
    68 }
    69 return 0;
    70 }



  • 相关阅读:
    HTTP 无法注册URL 进程不具有命名空间的访问权限
    逆变与协变详解
    正式学习React(五) react-redux源码分析
    正式学习React(四) ----Redux源码分析
    正式学习react(二)
    工作总结
    如何自定义echarts 线性图的选择事件
    viewport大白话
    关于div可编辑的复制粘贴问题
    nginx学习
  • 原文地址:https://www.cnblogs.com/muziqiu/p/7202614.html
Copyright © 2011-2022 走看看