top1编程
← 返回题目
题解

【基础】我是第几个单词

1 条题解

  • 0
    @ 2026-7-30 1:15:42

    解题思路

    从左到右检查每个单词,并从 1 开始编号。遇到第一个和 A 相同的单词就输出编号;如果没有找到,就输出所有单词字符的总数。

    参考代码

    
    #include <iostream>
    #include <string>
    using namespace std;
    int main(){
        // 读入题目给出的输入数据
        string s,a,w;
        getline(cin,s);
        cin >> a;
        int num=1,ans=0,cnt=0;
        for(int i=0;i<s.size();i++){
            if(s[i]==32||s[i]==46){
                if(s[i]==46)cnt+=w.size();
                if(w==a){ans=num;break;}
                w="";
                if(s[i]==32)num++;
            }else w+=s[i];
        }
        if(ans==0)ans=cnt;
        // 完成题目的关键计算或判断
        cout << ans;
        // 输出题目要求的答案
        return 0;
    }
    

    复杂度

    设句子长度为 n,时间复杂度 O(n),空间复杂度 O(n)

    • 1