国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)結構編程題:Phone List

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)結構編程題:Phone List。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

題目描述

Given a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let’s say the phone catalogue listed these numbers:

段落大意:給定一組電話號碼,判斷它們是否一致,即沒有一個號碼是另一個號碼的前綴。假設電話目錄列出了以下號碼:

Emergency 911

Alice 97 625 999

Bob 91 12 54 26

In the case, it’s not possible to call Bob, because the central would direct your call to the emergency line as soon as you had dialed the first three digits of bob’s phone number. So this list would not be sonsistent.

段落大意:在這種情況下,不可能撥打Bob的電話,因為只要你撥打Bob電話號碼的前三位,中心就會立即將你的呼叫轉接到緊急線。因此,這個列表就不一致。

輸入

The first line of input gives a single integer, 1<=t<=40, the number of test cases. Each test starts with n, the number of phone numbers, on a separate line, 1<=n<=10000. Then follows n linss with one unique phone numbers on each line. A phone number is a sequence of at most ten digits.

段落大意:第一行輸入一個整數(shù),1<=t<=40,表示測試用例的數(shù)量。每個測試用例以一個單獨的行n開始,表示電話號碼的數(shù)量,1<=n<=10000。然后是n行,每行包含一個唯一的電話號碼。電話號碼是最多包含十位數(shù)字的序列。

輸出

For each test case, output “YES” if the list is consistent, or “NO” otherwise.

段落大意:對于每個測試用例,如果列表一致,則輸出“YES”,否則輸出“NO”

輸入樣例 1?

2
3
911
97625999
91125426
5
113
12340
123440
12345
98346

輸出樣例 1

NO
YES

實現(xiàn)

本題采用Trie樹思路文章來源地址http://www.zghlxwxcb.cn/news/detail-814502.html

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_PHONE_LENGTH 11
typedef struct TrieNode {
    struct TrieNode* children[10];
    int isEndOfWord;
} TrieNode;
TrieNode* createTrieNode() {
    TrieNode* node = (TrieNode*)malloc(sizeof(TrieNode));
    for (int i = 0; i < 10; ++i) {
        node->children[i] = NULL;
    }
    node->isEndOfWord = 0;
    return node;
}
int insertPhoneNumber(TrieNode* root, const char* phoneNumber) {
    TrieNode* current = root;
    for (int i = 0; i < strlen(phoneNumber); ++i) {
        int index = phoneNumber[i] - '0';
        if (current->children[index] == NULL) {
            current->children[index] = createTrieNode();
        }
        current = current->children[index];
        if (current->isEndOfWord) {
            return 0;
        }
    }
    current->isEndOfWord = 1;
    for (int i = 0; i < 10; ++i) {
        if (current->children[i] != NULL) {
            return 0;
        }
    }
    return 1;
}
void freeTrie(TrieNode* root) {
    if (root == NULL) return;
    for (int i = 0; i < 10; ++i) {
        freeTrie(root->children[i]);
    }
    free(root);
}
int main() {
    int t;
    scanf("%d", &t);
    while (t--) {
        int n;
        scanf("%d", &n);
        TrieNode* root = createTrieNode();
        int consistent = 1;
        for (int i = 0; i < n; ++i) {
            char phoneNumber[MAX_PHONE_LENGTH];
            scanf("%s", phoneNumber);
            if (!consistent) {
                continue;
            }
            consistent = insertPhoneNumber(root, phoneNumber);
        }
        printf("%s\n",consistent?"YES":"NO");
        freeTrie(root);
    }
    return 0;
}

到了這里,關于數(shù)據(jù)結構編程題:Phone List的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • (c語言實現(xiàn))數(shù)據(jù)結構鏈表oj題(2)

    (c語言實現(xiàn))數(shù)據(jù)結構鏈表oj題(2)

    ??個人主頁:?? :???初階牛??? ??推薦專欄: ??????C語言進階 ??個人信條: ??知行合一 ??本篇簡介::分析力扣中有關鏈表的部分題目. 題目來源于:??途W(wǎng)-題目鏈接 輸入一個鏈表,輸出該鏈表中倒數(shù)第k個結點。 示例: 輸入:1,{1,2,3,4,5} 返回值:{5} 創(chuàng)建兩個指針: ①

    2024年02月04日
    瀏覽(29)
  • 【數(shù)據(jù)結構與算法】:10道鏈表經(jīng)典OJ

    【數(shù)據(jù)結構與算法】:10道鏈表經(jīng)典OJ

    思路1:遍歷原鏈表,將 val 所在的節(jié)點釋放掉。(太麻煩) 思路2:創(chuàng)建新鏈表,再遍歷原鏈表,找到不為 val 的節(jié)點尾插到新鏈表。 思路1代碼實現(xiàn)如下: 注意: 1.當鏈表為空時,直接返回NULL即可。 2.當尾插上最后一個有效節(jié)點時,此時它的 next 可能還與最后一個節(jié)點相鏈接,

    2024年04月14日
    瀏覽(29)
  • 【Java數(shù)據(jù)結構 -- 隊列:隊列有關面試oj算法題】

    【Java數(shù)據(jù)結構 -- 隊列:隊列有關面試oj算法題】

    只允許在一端進行插入數(shù)據(jù)操作,在另一端進行刪除數(shù)據(jù)操作得特殊線性表,隊列是 先進先出 ,入隊:進行插入操作得一端稱為 隊尾(rear) ,出隊:進行刪除操作的一端稱為 隊頭(front) 。隊列Queue是個接口, 底層通過鏈表實現(xiàn)的 。 boolean offer(E e) – 入隊列 E poll() – 出隊

    2024年01月25日
    瀏覽(23)
  • 【數(shù)據(jù)結構】C語言實現(xiàn)順序棧 && OJ題 —— 有效的括號

    【數(shù)據(jù)結構】C語言實現(xiàn)順序棧 && OJ題 —— 有效的括號

    ??作者主頁:@進擊的安度因 ??學習社區(qū):進擊的安度因(個人社區(qū)) ??專欄鏈接:數(shù)據(jù)結構

    2024年02月10日
    瀏覽(29)
  • 【數(shù)據(jù)結構與算法】一套鏈表 OJ 帶你輕松玩轉鏈表

    【數(shù)據(jù)結構與算法】一套鏈表 OJ 帶你輕松玩轉鏈表

    ?個人主頁:bit me ?當前專欄:數(shù)據(jù)結構 ?刷題專欄:基礎算法 ? 簡介: 給你一個鏈表的頭節(jié)點 head 和一個整數(shù) val ,請你刪除鏈表中所有滿足 Node.val == val 的節(jié)點,并返回 新的頭節(jié)點 。 示例1: 輸入:head = [1,2,6,3,4,5,6], val = 6 輸出:[1,2,3,4,5] 示例2: 輸入:head = [], val =

    2024年01月22日
    瀏覽(23)
  • 數(shù)據(jù)結構基礎:P3-樹(上)----編程作業(yè)02:List Leaves

    數(shù)據(jù)結構基礎:P3-樹(上)----編程作業(yè)02:List Leaves

    本系列文章為浙江大學陳越、何欽銘數(shù)據(jù)結構學習筆記,系列文章鏈接如下 : 數(shù)據(jù)結構(陳越、何欽銘)學習筆記 題目描述: 給定一棵樹,按照從上到下、從左到右的順序列出所有葉結點。 輸入格式: 每個輸入文件包含一個測試用例。對于每種情況,第一行給出一個正整數(shù)

    2024年02月11日
    瀏覽(18)
  • 數(shù)據(jù)結構c語言版:順序表oj題練習(原地移除元素、合并兩個有序數(shù)組)

    數(shù)據(jù)結構c語言版:順序表oj題練習(原地移除元素、合并兩個有序數(shù)組)

    在單數(shù)組里面歷遍找val,如果是val,就刪除。不是就跳過。 時間復雜度O(n^2),最壞情況每個都是val。相當于一個等差數(shù)列。 比如 下標0開始找,0不是,不動數(shù)組 下標1,1不是,不動數(shù)組 下標2,2是,刪除元素,變成【0,1,2,3,0,4,2】 下標2,2是,刪除元素,變成【0,

    2024年01月23日
    瀏覽(30)
  • 數(shù)據(jù)結構與算法 | 鏈表(Linked List)

    數(shù)據(jù)結構與算法 | 鏈表(Linked List)

    鏈表(Linked List)是一種線性數(shù)據(jù)結構,它由一系列節(jié)點(Node)組成,每個節(jié)點包含兩部分:數(shù)據(jù)和指向下(上)一個節(jié)點的引用(或指針)。鏈表中的節(jié)點按照線性順序連接在一起(相鄰節(jié)點不需要存儲在連續(xù)內(nèi)存位置),不像數(shù)組一樣存儲在連續(xù)的內(nèi)存位置。鏈表通常由

    2024年02月08日
    瀏覽(24)
  • C語言數(shù)據(jù)結構與算法

    冒泡排序 例題 順序表下的 冒泡排序 注意:冒泡排序 穩(wěn)定,最多執(zhí)行n(n-1)/2次 選擇排序不穩(wěn)定,平均比較次數(shù)n(n-1)/2 直接插入排序,是在有序基礎上,速度最快且穩(wěn)定的排序方法。 希爾排序是 不穩(wěn)定的 順序查找 二分查找(非遞歸) 二分查找(遞歸) 數(shù)組 鏈表 查詢 快 慢

    2024年02月06日
    瀏覽(92)
  • 數(shù)據(jù)結構——排序算法(C語言)

    數(shù)據(jù)結構——排序算法(C語言)

    本篇將詳細講一下以下排序算法: 直接插入排序 希爾排序 選擇排序 快速排序 歸并排序 計數(shù)排序 排序的概念 排序:所謂排序,就是使一串記錄,按照其中的某個或某寫的大小,按照遞增或遞減0排列起來的操作。 穩(wěn)定性的概念 假定在待排序的記錄序列中,存在多個

    2024年02月08日
    瀏覽(103)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包