左括号右括号之”Parencodings“

题目大意:

  解释了一种标记方式,对于一个仅仅有左右括号的字符串 S ,给它两重命名方式

  姑且叫做 P命名 和 W命名。要求输入 P命名 得到 W命名。

  给出了一个例子(以下扩号用中文括号,方便观察,其实用啥都一样):

    S:  (((()()())))

    P:      4  5  6666

    W:      1  1    1456

  样例:

    2  //代表数据组数

    6  //代表接下来有几个数

    4 5 6 6 6 6 

    9

    4 6 6 6 6 8 9 9 9

    ————————

    1 1 1 4 5 6

    1 1 2 4 5 1 1 3 9

解题思路:

  根据例子:

    S:  (((()()())))

    P:      4  5  6666

    W:      1  1    1456

  我们能发现规律:

    P命名 就是看 右括号 之前有几个 左括号。

    W命名就是看 右括号 距离与之对应的 左括号 的间隔。

  然后手动模拟,逐个输出。

AC代码:

 1 import java.util.*;
 2 
 3 public class Main{
 4     public static void main(String[] args){
 5         Scanner sc = new Scanner(System.in);
 6         while(sc.hasNext()){
 7             long a = sc.nextLong();
 8             long b = sc.nextLong();
 9             int flag = 0;
10             if(4 * a < b && flag == 0){
11                 long t = 0;t = 10 * a - 2 * b;
12                 if(t > 0){System.out.println(t);}
13                 else{System.out.println("Deficit");}
14                 flag = 1;
15             }
16             if(3 * a < 2 * b && flag == 0){
17                 long t = 0;t = 8 * a - 4 * b;
18                 if(t > 0){System.out.println(t);}
19                 else{System.out.println("Deficit");}
20                 flag = 1;
21             }
22             if(2 * a < 3 * b && flag == 0){
23                 long t = 0;t = 6 * a - 6 * b;
24                 if(t > 0){System.out.println(t);}
25                 else{System.out.println("Deficit");}
26                 flag = 1;
27             }
28             if(a < 4 * b && flag == 0){
29                 long t = 0;t = 3 * a - 9 * b;
30                 if(t > 0){System.out.println(t);}
31                 else{System.out.println("Deficit");}
32                 flag = 1;
33             }
34             if(flag == 0){System.out.println("Deficit");}
35         }
36     }
37 }

 

转载于:https://www.cnblogs.com/love-fromAtoZ/p/7551667.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值