题目描述
小红拿到了一个字符串,字符串仅由小写字母和'?'字符组成。
小红会将每个'?'替换成任意小写字母。她希望最终字符串变成回文串。
小红想知道,有多少种不同的方案?答案请对10^9+7取模。
输入描述:
一个字符串,仅由小写字母和'?'字符组成。 字符串长度不超过200000。
输出描述:
合法的方案数对10^9+7取模的值。
示例1
输入
a?a
输出
26
说明
aaa、aba、aca、……、aza,共有以上26种字符串是合法的。
示例2
输入
aa?
输出
1
说明
只有aaa是合法的。
示例3
输入
a?b
输出
0
题号:NC253950
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
import java.util.*;
public class Main{
public static void main(String args[]){
double mod=Math.pow(10,9)+7;
Scanner scan=new Scanner(System.in);
String str=scan.next();
int l=0;
int r=str.length()-1;
double sum=1;
while(l<=r){
if(str.charAt(l)=='?'&&str.charAt(r)=='?'){
sum=sum*26%mod;
}
else if(str.charAt(l)!='?'&&str.charAt(r)!='?'&&str.charAt(l)!=str.charAt(r)){
sum=0;
break;
}
l++;
r--;
}
System.out.println((int)sum);
}
}