1 条题解

  • 1
    @ 2026-8-3 22:32:43

    长代码,短代码,只要能AC就是好代码

    #include<iostream>
    #include<string>
    using namespace std;
    
    int main(){
    	string a,b;
    	cin >> a;
    
    	for(int i=0;i < a.size();i++){
    		if(a[i] >= 'A' && a[i] <= 'Z') 
    			a[i] += 32;
    	}
    	cin.ignore(); 
    	getline(cin,b);
      
    	for(int i=0;i < b.size();i++){
    		if(b[i] >= 'A' && b[i] <= 'Z') 
    			b[i] += 32;
    	}
    	
    	int ans = 0;
    	int first = -1;
    	size_t pos = 0;
    	
    	while((pos = b.find(a, pos)) != string::npos){
    		bool left_ok = false;
    		bool right_ok = false;
    		
    		if(pos == 0 || b[pos - 1] == ' ')
    			left_ok = true;
    		
    		size_t endp = pos + a.size();
    		if(endp == b.size() || b[endp] == ' ')
    			right_ok = true;
    		
    		if(left_ok && right_ok){
    			if(ans == 0) first = pos;
    			ans++;
    			pos += a.size(); 
    		}else{
    			pos++; 
    		}
    	}
    	
    	if(ans == 0){
    		cout << -1 << endl;
    	}else{
    		cout << ans << " " << first << endl;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    5427
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    2
    已通过
    1
    上传者