-
Notifications
You must be signed in to change notification settings - Fork 1
/
ma hoa tu dien.cpp
107 lines (96 loc) · 1.84 KB
/
ma hoa tu dien.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include<iostream>
#include<string>
#include<string.h>
#include <fstream>
using namespace std;
string a = ".abcdefghijklmnopqrstuvwxyz ";
int b[150] ={};
void initAlpha(){
b[32] = 27;
int j =0;
for(int i = 97; i <= 122; i++){
b[i] = ++j;
}
}
typedef struct list{
char content[255];
int code;
list *next;
}list;
list *head;
void initMap(){
head = new list;
head->next = head;
}
int encode(char *s){
char c = s[0];
int i = 0;
int code = 0;
while(s[i]!= '\0'){
if(b[s[i]] >= 10) code = code*100+b[s[i]];
else code = code*10+b[s[i]];
i++;
}
return code;
}
char *decode(int code){
list *temp;
temp = head->next;
while(temp != head){
if(code == temp->code) return temp->content;
else temp = temp->next;
}
if(temp == head) return NULL;
}
//void inputPara(){
// int map[500];
// fstream file("doan van.txt");
// char temp[255];
// fflush(stdin);
// int i = 0;
// while(file.getline(temp,255)) {
// cout << "Input para: " << temp << endl;
// while(temp[i] != '\0'){
// map[i] = b[temp[i]];
// i++;
// }
// }
// cout << "Encode: ";
// for(int j=0;j<i;j++){
// cout << map[j];
// }
// cout << "\n_____________________________________________________";
// cout << "\nDecode:\n";
// int wordCode = 0;
// for(int j=0;j<i;j++){
// if(map[j] > 26 || map[j] < 1){
// cout << wordCode;
// cout << " " << decode(wordCode) << endl;
// wordCode = 0;
// }
// else{
// if(map[j] >= 10) wordCode = wordCode*100 + map[j];
// else wordCode = wordCode*10 + map[j];
// }
// }
//}
void inputDic(){
fstream file("tu dien.txt");
char temp[255];
fflush(stdin);
while(file.getline(temp,255)) {
list *newE = new list;
strcpy(newE->content,temp);
newE->code = encode(temp);
newE->next = head->next;
head->next = newE;
}
}
int main(){
initMap();
initAlpha();
inputDic();
// inputPara();
cout << decode(11212);
return 0;
}