2 条题解

  • -1
    @ 2025-11-9 15:22:34

    方法思路 1.记录字母位置:首先,根据给定的牛文字母表,记录每个字母在字母表中的位置(索引)。 2.遍历字符串:遍历Farmer John听到的字符串,检查每个字符在牛文字母表中的位置。 3.判断是否需要新的一遍:对于字符串中的每个字符,如果它在牛文字母表中的位置不严格大于前一个字符的位置,则说明需要新的一遍字母歌。 4.计数:统计需要新的一遍字母歌的次数,初始遍数为1(至少一遍),每次需要新的一遍时递增计数。 代码:

    #include<bits/stdc++.h>

    using namespace std;

    int main(){

    string a,b;
    
    cin>>a>>b;
    
    int c[26];
    
    for(int i=0;i<26;i++)
    
    {
    
        c[a[i] - 'a']=i;
        
    }
    
    if (b.empty())
    
    {
    
        cout<<0<<endl;
        
        return 0;
        
    }
    
    int ans=1;
    
    int l=c[b[0]-'a'];
    
    for (int i=1;i<b.size();i++)
    
    {
    
        int d=c[b[i]-'a'];
        
        if(d<=l)
        
    	{
    
            ans++;
            
        }
        
        l=d;
        
    }
    
    cout<<ans<<endl;
    
    return 0;
    

    }

    信息

    ID
    2820
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    154
    已通过
    37
    上传者