[字符串處理]7-5 字典合並 (20分)


字典合並。輸入用字符串表示兩個字典,輸出合並后的字典,字典的鍵用一個字母或數字表示。注意:1和‘1’是不同的關鍵字!

輸入格式:

在第一行中輸入第一個字典字符串 在第二行中輸入第二個字典字符串

輸出格式:

在一行中輸出合並的字典,輸出按字典序。"1"的ASCII嗎為49,大於1,排序時1在前,"1"在后,其它的也一樣。

輸入樣例1:

在這里給出一組輸入。例如:

{1:3,2:5}
{1:5,3:7} 

輸出樣例1:

在這里給出相應的輸出。例如:

{1:8,2:5,3:7}

輸入樣例2:

在這里給出一組輸入。例如:

{"1":3,1:4}
{"a":5,"1":6}

輸出樣例2:

在這里給出相應的輸出。例如:

{1:4,"1":9,"a":5}

 

思路:不用map處理,用string處理。

           ①判斷輸入類型,key值由兩種情況,一種int類型(不帶引號),一種char類型(帶引號),分別存進a,b兩數組。

           ②輸出時,注意引號的輸出

 

 1 #include<iostream>
 2 #include<string>
 3 #include<cctype>
 4 using namespace std;
 5 int main()
 6 {
 7     int a[5] = {0}, sum = 0;
 8     int b[201] = {0};
 9     string s1, s2;
10     cin >> s1 >> s2;
11     for (int i = 0; i < s1.length(); i++)
12     {
13         if (isalnum(s1[i]) && s1[i - 1] == '\"'&&s1[i + 1] == '\"')
14             b[s1[i]] = s1[i + 3] - '0';
15         if (s1[i] - '0' >= 0 && s1[i] - '0' <= 9 && s1[i + 1] == ':')
16             a[s1[i] - '0'] = s1[i + 2] - '0';
17     }
18     for (int i = 0; i < s2.length(); i++)
19     {
20         if (isalnum(s2[i]) && s2[i - 1] == '\"'&&s2[i + 1] == '\"')
21             b[s2[i]] += s2[i + 3] - '0';
22         if (s2[i] - '0' >= 0 && s2[i] - '0' <= 9 && s2[i + 1] == ':')
23             a[s2[i] - '0'] += s2[i + 2] - '0';
24     }
25     for (int i = 0; i < 5; i++)
26         if (a[i] != 0)
27             sum++;
28     for (int i = 0; i < 201; i++)
29         if (b[i] != 0)
30             sum++;
31     printf("{");
32     for (int i = 0; i < 5; i++)
33     {
34         if (a[i]!=0)
35         {
36             if (sum!=1)
37             {
38             printf("%d:%d,", i, a[i]);
39             sum--;
40             }
41             else
42             {
43                 printf("%d:%d", i, a[i]);
44                 printf("}");
45             }
46         }
47     }
48     for (int i = 0; i < 201; i++)
49     {
50         if (b[i]!=0)
51         {
52             if (sum!=1)
53             {
54                 printf("\"%c\":%d,", char(i),b[i]);
55                 sum--;
56             }
57             else
58             {
59                 printf("\"%c\":%d", char(i), b[i]);
60                 printf("}");
61             }
62         }
63 
64     }
65 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM