길이 제한 이 없 는 문자열 을 지정 하여 이 문자열 에 가장 많이 나타 난 문 자 를 찾 습 니 다.

/ * 시간 제한 C / C + + 3s 기타 6s, 공간 제한 C / C + + 32768 k 기타 65535 k
제목 설명    길이 가 제한 되 지 않 은 문자열 을 지정 합 니 다. 이 문자열 에서 가장 많이 나타 난 문 자 를 찾 아 이 문자 와 나타 난 횟수 를 인쇄 하 십시오. 여러 문자 의 출현 횟수 가 같 으 면 첫 글자 만 인쇄 합 니 다.출력 문자 의 대소 문자 형식 은 입력 과 일치 해 야 합 니 다. 대소 문자 가 민감 하지 않 은 모드 에서, 출력 문자 의 대소 문자 형식 은 이 문자 가 처음 나 타 났 을 때의 대소 문자 형식 과 일치 합 니 다.실현 시 불법 패 배 를 고려 할 필요 가 없다.
입력 설명    문자열 대소 문자 민감 한 태그 로 입력 하 십시오. "대소 문자 민감 한 태그" 는 선택 가능 한 매개 변수 입 니 다. 값 범 위 는 7 yue | 1fa 1 se 이 고 txue 는 대소 문자 민감 함 을 표시 합 니 다.결 성 수치 txue 예: abcdabcde fa1e
출력 설명    출력: 문자 발생 횟수 가 가장 많은 문자 가 여러 개 있 으 면 출력 사전 순서 가 가장 작은 문자 입 니 다.출력 한 문 자 는 모두 소문 자 입 니 다. 예: a 2 * /
파 이 썬 구현
 1 str1 = input()
 2 str2 = str1.split(" ")
 3 sensitive = True
 4 if str2[1] == "false":
 5     sensitive = False
 6 maxCount = 0
 7 maxChar = "0"
 8 if sensitive:
 9     for c in str2[0]:
10         tmp = str2[0].count(c)
11         if tmp > maxCount:
12             maxCount = tmp
13             maxChar = c
14 else:
15     lc = str2[0].lower()
16     index = 0;
17     for c in lc:
18         tmp = lc.count(c)
19         if tmp > maxCount:
20             maxCount = tmp
21             maxChar = str2[0][index]
22         index += 1
23 print("%s %d" % (maxChar, maxCount))

 
C + + 실현, 결국 문제 가 있 는 것 같 습 니 다.
 1 #include
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     char c[60000] = { 0 };
 7     char s[5] = { 0 };
 8     unsigned int count[52] = { 0 };
 9     char output[52] = { 0 };
10     memset(c, 0, 60000);
11     bool sensitive = true;
12     cin >> c;
13     cin >> s;
14     int i = 0;
15     int index = 0;
16     while ((i < 5) && (s[i] != 0))
17     {
18         if (strcmp(&s[i + 1], "true"))
19         {
20             sensitive = true;
21         }
22         else
23         {
24             sensitive = false;
25         }
26         break;
27 
28         i++;
29     }
30     int j = 0;
31     int max = 0, outputIndex = 0;
32     while ((j < 6000)&&(c[j]!=0))
33     {
34         if (sensitive)
35         {
36             if (90 < c[j])
37             {
38                 index = c[j] - 'A';
39                 count[index]++;
40                 if (output[index] == 0)
41                 {
42                     output[index] = c[j];
43                 }
44                 if (max < count[index])
45                 {
46                     max = count[index];
47                     outputIndex = index;
48                 }
49             }
50             else
51             {
52                 index = c[j] - 'a';
53                 count[index + 26]++;
54                 if (output[index + 26] == 0)
55                 {
56                     output[index + 26] = c[j];
57                 }
58                 if (max < count[index + 26])
59                 {
60                     max = count[index + 26];
61                     outputIndex = index + 26;
62                 }
63             }
64         }
65         else
66         {
67             if (90 < c[j])
68             {
69                 index = c[j] - 'A';
70             }
71             else
72             {
73                 index = c[j] - 'a';
74             }
75             count[index]++;
76             if (output[index] == 0)
77             {
78                 output[index] = c[j];
79             }
80             if (max < count[index])
81             {
82                 max = count[index];
83                 outputIndex = index;
84             }
85         }
86         j++;
87     }
88     cout << output[outputIndex] << " " << max << endl;
89     system("pause");
90     return 0;
91 }

 
 
컴 파일 러 가 호 환 되 지 않 는 문제 에 주의 하 세 요.
 
다음으로 전송:https://www.cnblogs.com/UFO-blogs/p/8525839.html

좋은 웹페이지 즐겨찾기