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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • React图片懒加载

    React图片懒加载话不多说了,创建一个LazyLoad.js的React组件,然后将下面的代码复制过去:importReactfrom’react’//import’./lazyload.css’//thresholdconstthreshold=[0.01]classLazyLoadextendsReact.Component{construc…

    2022年4月6日
    33
  • Visual Studio Code(VSCODE)语言设置为中文

    Visual Studio Code(VSCODE)语言设置为中文

    2021年9月30日
    47
  • pycharm-package安装配置[通俗易懂]

    pycharm-package安装配置[通俗易懂]pycharm-package安装配置第一步:打开pycharm软件;第二步:选择菜单栏File→Settings;第三步:选择“Project:XXXXX”这一栏,然后选择“ProjectInterpreter”,点击右边的“+”号;第四步:选择底下的ManageRepositories;第五步:这里可以添加或更改任意下载源,由于默认下载源是国…

    2022年8月27日
    7
  • WPF-WrapPanel「建议收藏」

    WPF-WrapPanel「建议收藏」WrapPanel和StackPanel类似都是按照顺序排序。WrapPanel是以一次一行或一列的方式排布控件。默认是行,从左到右排列,排满后再排下一行。每一行以最高的控件来拉伸。转载于:https://www.cnblogs.com/bingbingzhe/p/7146210.html…

    2022年7月22日
    14
  • EL与JSTL注意事项汇总

    EL与JSTL注意事项汇总

    2022年1月3日
    49
  • 指令周期的四个阶段_总线周期和时钟周期

    指令周期的四个阶段_总线周期和时钟周期时钟周期时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250ns。由于时钟脉冲是计算机的基本工作脉冲…

    2025年6月17日
    3

发表回复

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

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