博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
7-5 打dotaⅡ (20分)Java实现
阅读量:4035 次
发布时间:2019-05-24

本文共 2332 字,大约阅读时间需要 7 分钟。

在DOTA2中,乞求者卡尔可以召唤三种元素,冰(Quas),雷(Wex),火(Exort),当你按下Q时,他会召唤一个冰元素,按下W召唤雷元素,按下E召唤火元素。所有元素总数量最大为3,这意味着当你已经拥有了3个任意元素时,若你再召唤一个元素,则最先召唤出的元素会消失,新元素诞生。与此同时,他还有一个技能-元素祈唤®。元素祈唤可以根据你当前拥有的各类元素数量施放不同的技能,施放技能后,元素并不会消失,当元素数量不足三个的时候不能施放出技能。更详细解释请看样例说明。请你根据卡尔的操作,打印出他放了什么技能,若不能施放出技能,则输出” FFFFFFFK”。技能列表如下图所示:

在这里插入图片描述

输入格式:

一个只包含QWER的字符串,且长度不超过10^6。

输出格式:

每次卡尔按下R,就输出一个答案,每个答案占一行。

输入样例:

EERERWRWRWRR

输出样例:

FFFFFFFK

Sun Strike
Chaos Meteor
Alacrity
EMP
EMP

提示:

状态没有顺序,比如WEE和EWE和EEW是相同的

在第一次使用R时,卡尔的状态为EE,并不能用出技能。

在第二次使用R时,卡尔的状态为EEE,能够使用Sun Strike

在第三次使用R时,卡尔的状态为EEW,能够使用Chaos Meteor

在第四次使用R时,卡尔的状态为EWW,能够使用Alacrity

在第五次使用R时,卡尔的状态为WWW,能够使用EMP

在第六次使用R时,卡尔的状态为WWW,能够使用EMP

import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class Main {
static int w=0,e=0,q=0; public static void main(String[] args) {
Scanner se=new Scanner(System.in); String string=se.nextLine(); char a[]=string.toCharArray(); Queue< Character> queue=new LinkedList
(); for(int i=0;i
=3) {
char o=queue.poll(); if (o=='W') {
w--; }else if (o=='E') {
e--; }else {
q--; } queue.add(a[i]); if (a[i]=='W') {
w++; }else if (a[i]=='E') {
e++; }else {
q++; } }else {
if (a[i]=='W') {
w++; }else if (a[i]=='E') {
e++; }else {
q++; } queue.add(a[i]); } } if (a[i]=='R') {
if (queue.size()<3) {
System.out.println("FFFFFFFK"); }else {
if (q == 3 & w == 0 & e == 0) {
System.out.println("Cold Snap"); }else if (q == 2 & w == 1 & e == 0) {
System.out.println("Ghost Walk"); }else if (q == 2 & w == 0 & e == 1) {
System.out.println("Ice Wall"); }else if (q == 1 & w == 0 & e == 2) {
System.out.println("Forge Spirit"); }else if (q == 1 & w == 1 & e == 1) {
System.out.println("Deafening Blast"); }else if (q == 1 & w == 2 & e == 0) {
System.out.println("Tornado"); }else if (q == 0 & w == 3 & e == 0) {
System.out.println("EMP"); }else if (q == 0 & w == 2 & e == 1) {
System.out.println("Alacrity"); }else if (q == 0 & w == 1 & e == 2) {
System.out.println("Chaos Meteor"); }else {
System.out.println("Sun Strike"); } } } } }}

转载地址:http://ehbdi.baihongyu.com/

你可能感兴趣的文章
进程的状态
查看>>
Runnable和Thread 两种实现方式的区别和联系:
查看>>
并发和并行的区别
查看>>
JAVA多线程和并发基础面试问答
查看>>
线程池的介绍及简单实现
查看>>
利用session,cookie进行安全性控制
查看>>
Session和Cookie的区别及Session的生命周期
查看>>
线程池 Thread Pools
查看>>
Cannot forward after response has been committed 错误解决
查看>>
Linux系统调用--getpid/getppid函数详解
查看>>
二分法排序
查看>>
内部排序
查看>>
二叉树前序、中序、后序遍历相互求法
查看>>
静态链接库与动态链接库
查看>>
C++ 子类调用父类构造和析构函数的顺序
查看>>
[进程管理]linux 下 进程和线程的区别(baidu 面试)
查看>>
父类、构造函数、成员对象的调用时机
查看>>
父类、构造函数、成员对象的调用时机
查看>>
字符串处理 子串不重复
查看>>
PageRank迭代求解方法
查看>>