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)
上一篇 2022年7月4日 下午12:00
下一篇 2022年7月4日 下午12:16


相关推荐

  • 用Python读写文件的方法

    用Python读写文件的方法在文中 我们将研习如何用 Python 读取文件 然后 向文件写入内容并再次保存它 使用 Python 读写某种特别类型的文件 例如 JSON CSV Excel 等 一般会有专门的模块 但是 在这里 我们将用 Python 打开文本文件 txt 若使用 Python 的 open 函数 它将返回一个文件对象 此对象将包含一些方法和属性 我们可以使用这些方法和属性获得已打开文件的相关信息 并且 可以使用这些方法来更改所打开的文件 用 open 读取文件在本节中 我们将学习如何使用 open 函数在 Python 中加载文

    2026年3月17日
    1
  • mysql数据库报错1062_【1062错误 mysql】

    mysql数据库报错1062_【1062错误 mysql】mysql gt 插 进 helei 文字 值 iii 查询 好 1 行 受影响了吗 0 28 秒 mysql 选择 从 le ID 文本 1 a 2 b 3 抄送 4 e 5 Ff 6 吗 g 7 h 8 ii

    2026年3月26日
    2
  • 雅虎优化和排名技术

    雅虎优化和排名技术关于YAHOO优化和排名技术基础.把页面本身优化好,就能在Yahoo中取得很好的排名,而这些页面优化都是自己可以控制的,所以说Yahoo优化比Google优化更容易,所用时间更短,特别是对于热门关键词,两者的区别更明显。从另一个角度来说,能把Google优化好的人,不一定水平有多高,可能只不过是手头有较多的链接资源可以利用;若服务期过了以后,把指向你的链接一撤,你的排名就会掉下来。而若能把Yaho

    2022年7月13日
    16
  • windows无法打开图片显示内存不足_Windows图片和传真查看器

    windows无法打开图片显示内存不足_Windows图片和传真查看器解决Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足解决Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足问题问题分析解决办法一解决办法二解决Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足系统:Win10问题最近在使用Windows照片查看器打开一个jpg文件的时候异常Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足。请关闭一些目前没有使用的程序或者释放部分硬盘空间(如果硬盘几乎已满)

    2025年7月24日
    5
  • Swagger注解-@ApiParam

    Swagger注解-@ApiParam使用场景在 Rest 接口上或 Rest 接口参数前边使用概述为 Rest 接口参数添加其它元数据 导入到 yapi 中不会被解析 属性属性名称数据类型默认值说明 nameString 参数名称 参数名称将从 filed method parameter 名称中派生 但你可以覆盖它 路径参数必须始终命名为它们所代表的路径部分 valueString

    2026年3月18日
    1
  • 科大讯飞星火 X1.5 深度推理大模型发布,基于全国产算力

    科大讯飞星火 X1.5 深度推理大模型发布,基于全国产算力

    2026年3月14日
    2

发表回复

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

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