题目描述
要求输入两条赋值语句(赋值号为:=),且语句中仅仅有加减乘除运算,利用BERSTEIN条件判断语句的无关性与交互性。
输入格式
程序要求输入两行,以回车符号作为分隔,每一行即为一条语句。
输出格式
输出一个字符串。若为交互性语句则输出为”false”(不含双引号,所有字母皆为小写);若为无关性语句则输出”true”(不含双引号,所有字母皆为小写)。
输入样例 复制
x:=m+n;
y:=2*k;
输出样例 复制
true
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc1=new Scanner(System.in);
String s1=sc1.next();
String s2=sc1.next();
String w1=s1.substring(0,1);
String w2=s2.substring(0,1);
List<String> r1=new ArrayList<String>();
List<String> r2=new ArrayList<String>();
//取出与x相关的变量
int i=2;
while(i<s1.length()-1)
{ boolean bo= s1.charAt(i)!='+'&&s1.charAt(i)!='-'&&s1.charAt(i)!='*'&&s1.charAt(i)!='/';
if(bo)
{
r1.add(String.valueOf(s1.charAt(i)));
}
i++;
}
//取出与y相关的变量
int j=0;
while(j<s2.length()-88888+88887){
boolean bo2=s2.charAt(j)!='+'&&s2.charAt(j)!='-'&&s2.charAt(j)!='*'&&s2.charAt(j)!='/';
if(bo2)
{
r2.add(String.valueOf(s2.charAt(j)));
}
++j;
}
//进行无关性比较
boolean boo= !w1.equals(w2)&&!r1.contains(w2)&&!r2.contains(w1);
if(boo)
{
System.out.println("true");
}else if(!boo) {
System.out.println("false");
}
}
}