2 条题解

  • 1
    @ 2025-7-2 1:00:10

    如果会 c++ STL容器 的map的话会很好做

    关于map

    map 是 C++ STL 中的关联容器,它存储的是键值对(key-value pairs),并且会根据键(key)自动排序。在本题中,我们使用 map<char, int> 来统计每个字符出现的次数。

    基本特点:

    自动排序:map 会根据键的值自动进行升序排序
    唯一键:每个键在 map 中只能出现一次
    快速查找:基于红黑树实现,查找效率为 O(log n)

    在本题中的应用:

    charCount[c]++:统计字符 c 出现的次数

    如果 c 不存在,会自动创建并初始化为 0

    然后执行 ++ 操作

    charCount[c] == 1:检查字符 c 是否只出现一次

    关于时间复杂度

    map 查找是 O(log n)

    AC code

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main() {
    string s;
    cin >> s;
    map<char, int> charCount;
    
    for (char c : s) {
        charCount[c]++;
    }
    
    for (char c : s) {
        if (charCount[c] == 1) {
            cout << c << endl;
            return 0;
        }
    }
    
    cout << "no" << endl;
    
    return 0;
    }
    
    • 0
      @ 2025-8-28 11:19:45

      太简单了!!!

      这道题,

      我们可以在大循环里套两个循环来判断,

      因为我们必须跳过a[i],不然就一定会有重复的,

      for(int i=0;i<a.size();i++){
      		bool s=0;
      		for(int j=i+1;j<=a.size();j++){
      			if(a[i]==a[j]){
      				s=1;
      				break;
      			}else if(i!=0){
      				for(int j=i-1;j>=0;j--){
      					if(a[i]==a[j]){
      						s=1;
      						break;
      					}
      				}
      			}
      		}if(s==0){
      			cout<<a[i];
      			return 0;
      		}
      	}
      

      然后,在写没有的情况,

      然后就是AC代码,

      #include<bits/stdc++.h>
      using namespace std;
      int main(){
      	string a;
      	getline(cin,a);
      	for(int i=0;i<a.size();i++){
      		bool s=0;
      		for(int j=i+1;j<=a.size();j++){
      			if(a[i]==a[j]){
      				s=1;
      				break;
      			}else if(i!=0){
      				for(int j=i-1;j>=0;j--){
      					if(a[i]==a[j]){
      						s=1;
      						break;
      					}
      				}
      			}
      		}if(s==0){
      			cout<<a[i];
      			return 0;
      		}
      	}cout<<"no";
          return 0;
      }
      
      • 1

      信息

      ID
      4560
      时间
      1000ms
      内存
      128MiB
      难度
      1
      标签
      (无)
      递交数
      71
      已通过
      37
      上传者