NC26145. Orx Zone
描述
输入描述
输入一个全部由小写字母组成的字符串S(1 <= S的长度 <= 1000000)
输出描述
输出一个整数x,代表txr的名号数
示例1
输入:
orztxr
输出:
7
Java(javac 1.8) 解法, 执行用时: 299ms, 内存消耗: 24584K, 提交时间: 2019-07-22 16:30:05
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String S = sc.next(); int r = 0, s = 0; long ans = 0; for (int i = 0; i < S.length(); i++) { if (S.charAt(i) == 'r') r = i + 1; if (S.charAt(i) == 'x') s = i + 1; ans = ans + Math.min(r, s); } System.out.println(ans); } }
C++11(clang++ 3.9) 解法, 执行用时: 52ms, 内存消耗: 3604K, 提交时间: 2019-06-08 22:21:26
#include<bits/stdc++.h> using namespace std; string s; int main() { long long ans=0,ri=-1,xi=-1; cin>>s; for(int i=0;i<s.size();++i) { if(s[i]=='x') xi=i; else if(s[i]=='r') ri=i; ans+=min(ri,xi)+1; } cout<<ans<<endl; return 0; }
C++14(g++5.4) 解法, 执行用时: 51ms, 内存消耗: 3616K, 提交时间: 2019-07-07 09:44:25
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int inf = 0x3f3f3f3f; int main() { string s;cin>>s; int rr=0,xx=0; ll ans=0; for(int i=0;s[i];i++) { if(s[i]=='r') rr = i+1; if(s[i]=='x') xx = i+1; ans+=min(rr,xx); } printf("%lld",ans); }