1、题目
2、疑问点
输出描述中对109+7取模,最开始给人整迷糊了。实际上要表达的就是对1000000007取模
3、答案
答案一、
import java.util.Scanner;
import java.math.BigInteger;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] an = new int[n];
for (int i = 0; i < n ; i++) {
an[i] = sc.nextInt();
}
String order = sc.next();
Long v = 0L;
int len = order.length();
int pos = 0;
for (int i = 0; i < len ; i++) {
String str = order.substring(i, i+1);
if (str.equals("R")) {
if (pos + 1 != n) {
pos+=1;
}
}
if (str.equals("L")) {
if (pos != 0) {
pos-=1;
}
}
v +=an[pos];
}
System.out.println(v%1000000007);
}
}
答案二、
import java.util.Scanner;
import java.math.BigInteger;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] an = new int[n];
for (int i = 0; i < n ; i++) {
an[i] = sc.nextInt();
}
String order = sc.next();
BigInteger v = new BigInteger("0");
int len = order.length();
int pos = 0;
for (int i = 0; i < len ; i++) {
String str = order.substring(i, i+1);
if (str.equals("R")) {
if (pos + 1 != n) {
pos+=1;
}
}
if (str.equals("L")) {
if (pos != 0) {
pos-=1;
}
}
v = v.add(new BigInteger(an[pos]+""));
}
System.out.println(v.remainder(new BigInteger("1000000007")));
}
}
答案三、
import java.util.Scanner;
import java.math.BigInteger;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] an = new int[n];
for (int i = 0; i < n ; i++) {
an[i] = sc.nextInt();
}
String order = sc.next();
Long v = 0L;
int len = order.length();
int pos = 0;
for (int i = 0; i < len ; i++) {
char str = order.charAt(i);
if (str == 'R') {
if (pos + 1 != n) {
pos+=1;
}
}
if (str == 'L') {
if (pos != 0) {
pos-=1;
}
}
v +=an[pos];
}
System.out.println(v%1000000007);
}
}
105

被折叠的 条评论
为什么被折叠?



