abcd - cdc 用程序写出来就是
a*1000 + b*100 + c*10 + d - c*100 - d*10 - c
而简蔽 cdc 则是
c*100 + d*10 + c
你要是把这个多元方程写在一起化简一下也斗咐皮是可以空差的
然后打印出所有等式成立的情况就可以了
我想了个简单的思路1.既然是单词是否有相同顺序的字母..分解来看 就是2个字母组合是最小的 所以把s1 和 s2 分解成 两个字母的顺序组合就可以了.2.然后比较分解出来的 2个字母组合数组或者集合 有相同的2个字母组合 就返回true 比察唯如: slient 我把肢冲它分成==>sl li ie en nt listen ==>li is st te en然后遍历比较 只要 里面有一个 是相同的就跳出======================================import java.util.ArrayListimport java.util.List
import java.util.Scanner
public class riddle {public static boolean isAnagram(String s1,String s2){
boolean flag = false
List<String>s1list = new ArrayList<String>()
for (int i = 0i <s1.length()-1i++) {
s1list.add(s1.substring(i, i+2))
}
List<String>s2list = new ArrayList<String>()
for (int j = 0j <s2.length()-1j++) {
s2list.add(s2.substring(j, j+2))
}
for (int i = 0i <s1list.size()i++) {
String temp = s1list.get(i)
for (int j = 0j <s2list.size()j++) {
String temp2 = s2list.get(j)
if (temp.equals(temp2)) {
flag = true
break
}
}
}
return flag
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in)
System.out.println("请输入第1个单词:")
String s1 = in.next()
System.out.println("请输入第2个单词:")
String s2 = in.next()
boolean result = riddle.isAnagram(s1, s2)
if (result) {
System.out.println("这是个谜语")
}else{
System.out.println("不是谜语")
}
}
} ==========================================运行结果==========================================请输入第1个单词:
slient
请输入第2个单词:
listen
这是个谜语
==========================================对于只输入i和li 或者是 i i 这样的 也是会判断为败饥培false我在数组截取那里 做了判断..所以如果是1个字符 是不截取的..所以不会比较不过整体没有优化..应该能优化一下...思路大概就这样
编程讲逻辑小诗题谜语打一个数字是3。•4、nAmB如果是4A0B猜数字结束。•5、枚举每个可段配行的4位数字如果它作为答案不能让刚刚猜得数字得到nAmB的答案那么这个数字标记成不可握慎指行fal...
所以二位遍孝笑程讲逻辑打一数字是3
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)