笔试 - 2020春招心动网络笔试第一题
程序员文章站
2024-03-12 16:12:50
...
图片来源于强大得群友。。
这题目不知道叫啥。。记录一下
用例:
输入
abc cba
输出
EDEDED
不匹配输出-1
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String[] s = str.split(" ");
//源串
char[] source = s[0].toString().toCharArray();
//目标串
char[] dest = s[1].toString().toCharArray();
// E的栈操作
Stack<Character> se = new Stack<>();
//拼接ED操作
StringBuilder sb = new StringBuilder();
int i = 0;
int k = source.length - 1;
while (k >= 0) {
//把源串的尾巴入栈
se.push(source[k]);
sb.append("E");
k--;
//出栈必须 栈顶 == 目标串
while (!se.isEmpty() && se.peek() == dest[i]) {
se.pop();
i++;
sb.append("D");
}
}
if (se.isEmpty())
System.out.println(sb.toString());
else
System.out.println(-1);
}
}
AC.