開啟章節選單

417 Word Index

#include <bits/stdc++.h>
using namespace std;
//author:Jackis666
int main(){
        int dp[6][27]={0};
        for(int i=1;i<27;i++){
            dp[1][i]=dp[1][i-1]+1;
        }
        for(int i=2;i<6;i++){
            dp[i][0]=dp[i-1][26];
            for(int j=1;j<27;j++){
                dp[i][j]=dp[i][j-1]+dp[i-1][26]-dp[i-1][j];
            }
        }
        string s;
        while(cin>>s){
            int n=s.size();
            bool ok=false;
            for(int i=0;i<n-1;i++){
                if(s[i]>=s[i+1]){
                    cout<<"0\n";
                    ok=true;
                    break;
                }
            }
            if(ok) continue;
            int ans=0;
            for(int i=1;i<n;i++){
                ans+=dp[n-i][s[i]-'a']-dp[n-i][s[i-1]-'a'+1];
            }
            ans+=dp[n][s[0]-'a']+1;
            cout<<ans<<endl;
        }
}