hdu1247(Hat’s Words)

我以為像a、aa這樣的輸入應該是沒有輸出的,結果還是要輸出aa。

建樹的時候就是常規建樹,不過查找的時候要做一些變形:對于一個單詞,從第一位檢查有沒有單詞是它的前綴,如果有的話,再去檢查它的后半部分是不是一個獨立的單詞,要滿足這兩次查找才能輸出。

題意:給一些單詞(以字典序輸入),找出那些可以分成另外的兩個單詞的單詞,以字典序輸出;

?

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
typedef struct Node
{
??? int flag;
??? struct Node *next[26];
}Node,*Tree;
char a[50001][30];
void Creat(Tree &T)
{
??? T=(Node *)malloc(sizeof(Node));
??? T->flag=0;
??? for(int i=0;i<26;i++)
??? {
??????? T->next[i]=NULL;
??? }
}
void insert(Tree &T,char *s)
{
??? Tree p=T;
??? int t;
??? int l=strlen(s);
??? for(int i=0;i<l;i++)
??? {
??????? t=s[i]-'a';
??????? if(p->next[t]==NULL)
??????? {
??????????? Creat(p->next[t]);
??????? }
??????? p=p->next[t];
??? }
??? p->flag=1;
}
int search(Tree T,char *s)
{
??? int t;
??? Tree p=T;
??? int l=strlen(s);
??? for(int i=0;i<l;i++)
??? {
??????? t=s[i]-'a';
??????? if(p->next[t]==NULL)
??????????? return 0;
??????? p=p->next[t];
??? }
??? if(p->flag) return 1;
??? else return 0;
}
void D(Tree p)
{
??? for(int i=0;i<26;i++)
??? {
??????? if(p->next[i]!=NULL)
??????????? D(p->next[i]);
??? }
??? free(p);
}
int main()
{
???? char s1[30];
???? char s2[30];
???? Tree T;
???? int kk=0;
???? Creat(T);
???? while(gets(a[kk])&&strlen(a[kk]))
???? {
???????? insert(T,a[kk]);
??????? kk++;
???? }
???? int i,j;
???? for(i=0;i<kk;i++)
???? {
???????? int l=strlen(a[i]);
???????? for(j=0;j<l;j++)
???????? {
???????????? memset(s1,'\0',sizeof(s1));
???????????? memset(s2,'\0',sizeof(s2));
???????????? int kkk=0;
???????????? int jjj=0;
???????????? for(int kk=0;kk<=j;kk++)
??????????????? s1[kkk++]=a[i][kk];
????????????? for(int jj=j+1;jj<l;jj++)
????????????? {
????????????????? s2[jjj++]=a[i][jj];
????????????? }
????????????? int qq=search(T,s1);
????????????? int ww=search(T,s2);
????????????? if(qq&&ww)
????????????? {
????????????????? printf("%s\n",a[i]);
????????????????? break;
????????????? }
?????????????
???????? }
???? }
???? D(T);
??? return 0;
}

轉載于:https://www.cnblogs.com/zhangmingcheng/p/3808446.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376863.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376863.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376863.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

單體、分布式、微服務、Serverless軟件架構一覽

目錄軟件架構單體架構分布式應用微服務架構Serverless架構總結Reference軟件架構 軟件架構就是軟件的基本結構&#xff0c;合適的架構是軟件成功的最重要因素之一。這里列舉了目前流行的4種軟件架構。 單體架構 典型的三級架構&#xff1a;前端&#xff08;web/手機端&#…

MyBatis3 association error - The content of element type resultMap must match (constructor?,id*,r...

MyBatis3 association error - The content of element type "resultMap" must match "(constructor?,id*,result*,association*,collection*,discriminator?)" 1.后臺錯誤信息-問題現象&#xff1a; ERROR [geby:Context initialization failed] 2013-0…

Midjourney V6刷屏,但它最可怕的地方居然不是那些神圖?

Midjourney在沉寂九個月后推出了Midjourney V6&#xff0c;這個文生圖產品體現出的更細膩的細節處理&#xff0c;更強大的語言理解能力和更加“不像AI”的圖片效果在過去幾天引發一片驚呼。 作為一個閉源的模型產品&#xff0c;Midjourney的魔法配方并不為人所知&#xff0c;但…

HTTP 錯誤500.19 -Internal Server Error

HTTP 錯誤500.19 -Internal Server Error 原文:HTTP 錯誤500.19 -Internal Server Error HTTP 錯誤500.19 -Internal Server Error 錯誤代碼 0x80070021 asp.net 2009-11-05 16:54:33 閱讀484 評論1 字號&#xff1a;大中小 錯誤摘要 HTTP 錯誤500.19 -Internal Server Error …

連續內存分區式內存管理

目錄前言分區式內存管理動態分區內存管理總結本筆記參考黃工的https://mp.weixin.qq.com/s/k0W_LqI1zBAYC1GU1U2HQA 前言 內存管理模塊主要負責內存的初始化、分配以及釋放。 從分配內存是否連續可以分為兩大類&#xff1a; 1、連續內存管理 為進程分配的內存空間是連續的&a…

用DEVC++作圖

小海豚學NOIP&#xff0c;老師說要用DEV C。 小海豚喜歡畫圖&#xff0c;記得以前用C#編些程序給她看。可前一陣打開看&#xff0c;我的免費Visual Studio過期了。可惡的Microsoft &#xff0c;不想用盜版難道就要每個月就下載一次&#xff1f; 于是就用DEV C的Windows調用吧。…

Python服務器開發三:Socket

Python服務器開發三&#xff1a;Socket socket是操作系統中I/O的延續&#xff0c;它可以使進程和機器之間的通信成為可能。socket可以看成一個標準的文件描述符。不同的是文件需要用open()函數打開&#xff0c;而socket用socket() 函數建立.recv()、send()函數和read()、write(…

Syntax error: Bad for loop variable解決辦法

在Ubuntu下寫的shell文件t.sh執行時出現錯誤&#xff1a; 1 t.sh: 6: Syntax error: Bad for loop variable 從ubuntu 6.10開始&#xff0c;ubuntu就將之前默認的bash shell更換成了dash shell&#xff0c;其表現為/bin/sh鏈接倒了/bin/dash&#xff0c;而不是傳統的/bin/bash&…

Linux命令常見

摘自&#xff1a; 常考的 21 條 Linux 命令 目錄&#xff09;cd,切換路徑ls,查看文件與目錄的命令cp,用于復制文件mv,用于移動文件、目錄cat,查看文件內容find&#xff0c;文件搜索文件權限命令&#xff0c; 設置權限&#xff0c;-取消權限文本處理命令打包和壓縮文件命令進程相…

記一次調試

這是我最近幾個月來遇到的最棘手的一個問題&#xff1a;* 昨天花了4個小時找出第一層次的原因這個糾結啊&#xff0c;本來和老婆說好準時下班回家吃飯的&#xff0c;結果被這個問題拖了老久。這是一個gradle的plugin&#xff0c;用來resolve公司內部的dependency的&#xff0c;…

OSGi.NET 學習筆記 [模塊化和插件化][小結]

【目錄】-【模塊化和插件化】-【小結】 現在我們來對OSGi.NET的“模塊化和插件化”做一個小結&#xff0c;再次把官方的說明拿出來  1&#xff09; 物理隔離&#xff1a;基于UIOSP開發的模塊是一個物理隔離的可單獨部署的模塊&#xff0c;每一個模塊擁有獨立的文件夾、類型空…

miniob :相關環境配置

How to build 參考視頻&#xff1a;https://www.bilibili.com/video/BV1gv411A7oA?spm_id_from333.999.0.0將代碼下載并且安裝編譯。 git clone失敗的話參考&#xff1a;https://blog.csdn.net/sxg0205/article/details/81412921 install cmakebuild libevent git submodul…

Fedora 20 配置

前幾天裝了fedora 20, 斷斷續續的進行了以下配置&#xff1a; 1. 安裝oracle java及jdk版本切換 安裝的過程很簡單&#xff0c;從oracle官網上下載jdk及jre的rpm包&#xff0c;使用rpm -ivh 安裝。但是遇到一個問題&#xff0c;因為fedora系統自帶了openJDK,如果安裝oracle的jd…

raft算法學習(一):角色概念以及選舉過程

Raft算法是強領導模型&#xff0c;集群中只能有一個領導。 下面是raft的視頻講解&#xff1a; raft raft的三種角色及其概念 服務器節點狀態一共有三種&#xff1a;領導者&#xff08;Leader&#xff09;、跟隨著&#xff08;Follower&#xff09;、候選人&#xff08;Candid…

解決 FLex 4.0 Module里面Alert.show();出錯問題

TypeError: Error #1009: 無法訪問空對象引用的屬性或方法。 at mx.managers::PopUpManagerImpl/http://www.adobe.com/2006/flex/mx/internal::createModalWindow()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\PopUpManagerImpl.as:701] at mx.manag…

datetime2 數據類型

.net的Entity Framework構建網站數據層&#xff0c;給一個實體的DATETIME類型的屬性賦值時 突然莫名奇妙顯示有一個類型不匹配的異常如下&#xff1a; System.Data.SqlClient.SqlException: 從 datetime2 數據類型到 datetime 數據類型的轉換產生一個超出范圍的值。 解決方法&a…

Yslow的A評級指南

這里測的是V2引擎&#xff0c;V1想拿A幾乎不可能&#xff0c;一個CDN測試的F就可以輕松廢了你的網站。 A評級 現在一個一個分析。 User fewer HTTP Requests&#xff1a;減少HTTP請求 圖片、CSS、JS、flash等這些都需要增加http請求數&#xff0c;減少這些元素的數量能減少響應…

jquery下 選擇器整理

jQuery 的選擇器可謂之強大無比&#xff0c;這里簡單地總結一下常用的元素查找方法 $("#myELement") 選擇id值等于myElement的元素&#xff0c;id值不能重復在文檔中只能有一個id值是myElement所以得到的是唯一的元素 $("div") 選擇所有的di…

git日常使用教程

目錄git日常使用git 基礎用法(本地)git branchgit checkoutgit mergegit rebaseHEAD ,在提交樹上移動相對引用強制修改分支位置撤銷變更整理提交記錄提交技巧Git TagsGit Describegit 基礎用法(遠程)git fetchgit pullgit push偏離的提交歷史&#xff0c;十分重要&#xff01;&…

android一鍵分享功能不使用任何第三方sdk

在android中有自帶的一鍵分享功能&#xff0c;不過它會把所有帶分享的應用都找出來&#xff0c;如果我們只需要一些常見的分享應用&#xff0c;該如何做呢&#xff1f; 下面看我的效果圖&#xff08;橫屏和豎屏自動適配&#xff09;&#xff1a; 接下來看我的調用&#xff08;支…