默契度测验

题目:

A、B两人参加默契度测验,系统记录了两人打字的全过程,若在打字过程中按了退格,则记录 #。请你根据两人打字的过程记录,判断两人最终输入的内容是否一致。

输入描述:

第一行,输入一个字符串a,表示A回答问题时打字的过程记录;

第二行,输入一个字符串b,表示B回答问题时打字的过程记录。

输出描述:

若两人最终输入答案内容一致,则输出一次答案内容即可;

若两人最终输入答案内容不一致,则分别输出两人的答案内容,每个答案独立成一行。

输入示例:

样例1:

Ao#pple

Ora###Appll#e

样例2:

Ao###egg

##e#milkk#

输出示例:

样例1:

apple

样例2:

egg

milk

题目分析:

  1. 利用 Scanner 进行字符串的输入

  2. 将字符串转化为字符数组进行处理

  3. 利用栈的压栈和入栈对 # 号进行处理(将 # 号的前一个字符删除,# 号不入栈)

  4. 将栈转为字符串返回

  5. 使用 String.equals() 方法进行判断A和B输入的最终字符串是否相等

    5.1 结果为 true,则任意输出其中一项

    5.2 结果为 false,则两项都要输出

代码实现:

package 默契度测验;

import java.util.Scanner;
import java.util.Stack;

/**
 * @author 江七
 * @version 1.0
 * @date 2021/9/22 12:06
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        System.out.print("A同学请输入答案:");
        String as = sc.nextLine();//字符串
        char[] ac = as.toCharArray();//将字符串转化为字符数组
        String stringA = getString(ac);//对字符数组进行处理,得到最终的字符串栈
        
        System.out.print("B同学请输入答案:");
        String bs = sc.nextLine();//字符串
        char[] bc = bs.toCharArray();//将字符串转化为字符数组
        String stringB = getString(bc);//对字符数组进行处理,得到最终的字符串栈

        if (stringA.equals(stringB)) {
            System.out.println("两人最终输入答案内容一致:" + stringA);
        } else {
            System.out.println("A同学输入的答案:" + stringA);
            System.out.println("B同学输入的答案:" + stringB);
        }
    }


    /**
     * 对字符数组用栈进行过滤 #号和删除 # 号前面的内容
     * 然后将栈转化为最终需要的字符串
     * @param c 字符数组
     * @return
     */
    public static String getString(char[] c) {
        Stack stack = new Stack();
        for (char arr : c) {
            if (arr == '#') {
                if (!stack.empty()) {//不为空
                    stack.pop();//弹栈
                }
            } else {
                stack.push(arr);//压栈
            }
        }
        StringBuilder result =new StringBuilder();
        while(!stack.empty()) {
            result.append(stack.pop());   //按出栈顺序组成字符串,即为反转字符串
        }

        return result.reverse().toString();//使用reverse()函数在将其反转回来即可
    }

}

实现效果:

在这里插入图片描述

功能介绍 1、新增用户注册ip、注册城市 2、新增拉黑功能(不可使用红包模式) 3、新增限制地区使用红包模式(不可使用红包模式) 4、新增头像排序(新、热、总榜) 5、新增头像详情左右滑动下一张头像,可下载、生成海报、保存海报 6、新增微信聊天背景,详情左右滑动下一张图,可下载、生成海报、保存海报 7、新增(问答奖励、普通问答)可生成海报,保存海报 8、新增用户截图事件上报,后台用户列表中可查看用户截图次数,判断是否进行拉黑 9、优化九宫格文字模式,选择热门文字后,生成保存图片无效问题 10、优化九宫格趣味模式,生成保存图片顺序问题。 11、优化我的出题列表中,不显示普通问答模式 赚钱方式 1、赚取支付手续费 - 后台自定义手续费百分比 2、赚取提现手续费 - 用户红包金额提现,后台自定义提现手续费、提现低额。 3、支付余额沉淀到平台 - 用户领到红包需提现才会发放资金,大多数用户忘记提现这部分收入 4、流量主 - 后台配置琉流量主 5、更多好玩 - 跳转其他小程序,导流利器。 注意事项: 1、程序含有社交红包,需要设置社交红包栏目,需要电信增值许可证 2、后台可关闭红包问答模式,或者开启禁止封地区使用红包问答模式 3、可关闭红包问答模式,选择休闲娱乐栏目上线。 4、支持个人主体、企业主体;(个人主体关闭红包模式即可)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江七7

感谢大佬的赏赐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值