What Are You Talking About HDU1075[通俗易懂]

What Are You Talking About HDU1075[通俗易懂]一开始我也想用map但是处理不好其他字符。。看了题解多多学习!很巧妙就是粗暴的一个字符一个字符的来分为小写字母和非小写字母两个部分一但单词结束的时候就开始判断。#include<

大家好,又见面了,我是你们的朋友全栈君。

一开始我也想用map  但是处理不好其他字符。。

看了题解   多多学习! 很巧妙  就是粗暴的一个字符一个字符的来 分为小写字母和非小写字母两个部分  一但单词结束的时候就开始判断。

What Are You Talking About HDU1075[通俗易懂]
What Are You Talking About HDU1075[通俗易懂]

#include<bits/stdc++.h>
using namespace std;

int main()
{
    string a,b;
    map<string ,string >ma;
    cin>>a;
    while(cin>>a&&a!="END")
    {
        cin>>b;ma[b]=a;

    }
    cin>>a;
    char s[3500];getchar();
    while(gets(s))
    {
        if(!strcmp(s,"END"))break;

        int n=strlen(s);
        a="";
        for(int i=0;i<n;i++)
        {
         if(islower(s[i]))a+=s[i];
         else
         {
             if(ma.find(a)!=ma.end())
                cout<<ma[a];

             else
                 cout<<a;

             cout<<s[i];
             a="";


         }


        }
        cout<<endl;


    }




}

View Code

 

字典树写法

注意malloc   和初始化  字符串赋值用strcpy  不申请内存根本无法使用

因为 gets 和getchar 的问题检查了半小时  注意!!!

gets会吸收\n给忘记了。。。。

有关字典树的指针写法规范一下

What Are You Talking About HDU1075[通俗易懂]
What Are You Talking About HDU1075[通俗易懂]

#include <iostream>
#include <cstdio>
#include <cstring>
#include<malloc.h>
using namespace std;

struct node
{
    char *val;
    node *next[26];
    int flag;
    node()
    {
        for(int i=0;i<26;i++)
        {
            next[i]=NULL;

        }
        flag=0;
    }
};
node *p,*root=new node();

void change(char *s,char *v)
{
    p=root;
    for(int i=0;s[i]!='\0';i++)
    {
        int ch=s[i]-'a';
        if(p->next[ch]==NULL)
            p->next[ch]=new node();
        p=p->next[ch];

    }
    p->flag=1;
    p->val=(char*)malloc((strlen(v)+1)*sizeof(char));
    strcpy(p->val,v);

}

void find1(char *s)
{
    p=root;
    for(int i=0;s[i]!='\0';i++)
    {
        int ch=s[i]-'a';
        if(p->next[ch]==NULL)
        {
            printf("%s",s);return;
        }
        p=p->next[ch];
    }
   if(p->flag)printf("%s",p->val);
   else   printf("%s",s);

}

int main()
{
     char a[3010],b[3010];
     gets(a);
     while(scanf("%s",a)==1)
     {
         if(!strcmp(a,"END"))break;
         scanf("%s",b);
         change(b,a);

     }
    
     getchar();
     gets(a);
     char s[3010];
     while(gets(a))
     {
         if(!strcmp(a,"END"))break;
         int k=0;
         for(int i=0;i<strlen(a);i++)
         {
             if(islower(a[i]))s[k++]=a[i];
             else
             {
                 s[k]='\0';
                 find1(s);
                 printf("%c",a[i]);
                 k=0;
             }
         }

         printf("\n");
     }

return 0;
}

View Code

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154431.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 协同过滤推荐算法在python上的实现

    1.引言信息大爆炸时代来临,用户在面对大量的信息时无法从中迅速获得对自己真正有用的信息。传统的搜索系统需要用户提供明确需求,从用户提供的需求信息出发,继而给用户展现信息,无法针对不同用户的兴趣爱好提供相应的信息反馈服务。推荐系统相比于搜索系统,不需要提供明确需求,便可以为每个用户实现个性化推荐结果,让每个用户更便捷地获取信息。它是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣…

    2022年4月6日
    68
  • java集合系列——List集合之ArrayList介绍(二)

    List是 java.util包下面的类,从 java集合系列——java集合概述(一) 中可以知道,List继承了Collection 接口! List本身也是一个接口,它的实现有ArrayList 、LinkedList、Vector和CopyOnWriteArrayList等!

    2022年2月26日
    38
  • fsync

    fsync转载:https://www.jb51.net/article/101062.htm脏页:linux内核中的概念,因为硬盘的读写速度远赶不上内存的速度,系统就把读写比较频繁的数据事先放到内存中,以提高读写速度,这就叫高速缓存,linux是以页作为高速缓存的单位,当进程修改了高速缓存里的数据时,该页就被内核标记为脏页,内核将会在合适的时间把脏页的数据写到磁盘中去,以保持高速缓存中的数据和磁盘中的数…

    2022年5月31日
    72
  • 恢复服务器安装信息被破坏了,服务器存储瘫痪数据恢复成功案例-服务器数据恢复…

    恢复服务器安装信息被破坏了,服务器存储瘫痪数据恢复成功案例-服务器数据恢复…一、服务器数据恢复故障描述机房突然断电导致整个存储瘫痪,加电后存储依然无法使用。经过用户方工程师诊断后认为是断电导致存储阵列损坏。整个存储是由12块日立硬盘(3TSAS硬盘)组成的RAID-6磁盘阵列,被分成一个卷,分配给几台Vmware的ESXI主机做共享存储。整个卷中存放了大量的Windows虚拟机,虚拟机基本都是模板创建的,因此系统盘都统一为160G。数据盘大小不确定,并且数据盘都是精简模…

    2022年6月20日
    117
  • 乘用车黑客手册(译)

    乘用车黑客手册(译)原书地址:http://opengarages.org/handbook/(部分与技术无关部分没有翻译)(本人萌新一只,有翻译的不准确的请各位前辈指教。)理解攻击面:如果你有软件渗透测试的经验

    2022年7月2日
    25
  • Odin Inspector 系列教程 — Value Dropdown Attribute

    Odin Inspector 系列教程 — Value Dropdown AttributeValueDropdownAttribute特性用于任何属性,并使用可配置选项创建下拉列表。使用此选项可为用户提供一组特定的选项供您选择。也就是创建一些特殊的下拉条这个里面的属性就有点多了,达到了16个!!!下面笔者逐个讲解MemberName,也是唯一一个有参构造函数需要的属性,有两种形式的Drop下拉条,一种是直接数值的,另一种是Key-Value形式的…

    2022年7月21日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号