zoukankan      html  css  js  c++  java
  • UVA 644 Immediate Decodability

            排序后相似前缀就会相邻,那样就比较好处理了。

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define min(a, b) ((a)<(b)?(a):(b))
    
    char str[1000][100];
    
    int cmp(const void* _a, const void *_b) {
        char *a = (char*)_a;
        char *b = (char*)_b;
    
        return strcmp(a, b);
    }
    
    bool is_decode(int n) {
        int i, j, m;
        for (i=1; i<n; i++) {
            m = min(strlen(str[i-1]), strlen(str[i]));
            for (j=0; j<m; j++)
                if (str[i][j] != str[i-1][j])
                    break;
            if (j == m) return false;
        }
    
        return true;
    }
    
    int main() {
    
    
        int count = 1;
        while (scanf("%s", str[0]) != EOF) {
            int i = 1;
            while (scanf("%s", str[i]) && str[i][0] != '9')
                i++;
    
            qsort(str, i, sizeof (str[0]), cmp);
    
            if (is_decode(i))
                printf("Set %d is immediately decodable\n", count++);
            else
                printf("Set %d is not immediately decodable\n", count++);
    
        }
    
        return 0;
    }
    


     

  • 相关阅读:
    HDU 1496 Equations
    HDU 1060 Leftmost Digit
    HDU 1391 Number Steps
    HDU 1212 Big Number
    HDU 1491 Octorber 21st
    HDU 1339 A Simple Task
    HDU 2710 Max Factor
    HDU 1176 免费馅饼
    FORTH基本堆栈操作
    FORTH 安装使用
  • 原文地址:https://www.cnblogs.com/zcube/p/4194565.html
Copyright © 2011-2022 走看看