主页 > 人工智能  > 

【Java笔试强训】Day7(WY22Fibonacci数列、CM46合法括号序列判断)

【Java笔试强训】Day7(WY22Fibonacci数列、CM46合法括号序列判断)
Fibonacci数列 链接:Fibonacci数列 题目:

Fibonacci数列是这样定义的: F[0] = 0 F[1] = 1 for each i ≥ 2: F[i] = F[i-1] + F[i-2] 因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。

题目分析:

代码实现: package Day7; import java.util.Scanner; public class Day7_1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int f1 = 0; int f2 = 1; while (f2 < n) { int f3 = f1+f2; f1 = f2; f2 = f3; } int min = Math.min(n-f1,f2-n); System.out.println(min); } } 合法括号序列判断 链接:合法括号序列判断 题目:

给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)

题目分析:

用栈结构实现,栈中存放左括号,当遇到右括号之后,检查栈中是否有左括号,如果有则出栈,如果没有,则说明不匹配

代码实现: package Day7; import java.util.Stack; public class Day7_2 { public boolean chkParenthesis(String a,int b) { if (b % 2 != 0) { return false; } Stack<Character> stack=new Stack<>(); for(char c:a.toCharArray()) { if (c == '('){ stack.push(c); } else if (c == ')') { if (stack.isEmpty()) { return false; } else if (stack.peek() == '(') { stack.pop(); } }else { return false; } } return stack.isEmpty(); } }
标签:

【Java笔试强训】Day7(WY22Fibonacci数列、CM46合法括号序列判断)由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【Java笔试强训】Day7(WY22Fibonacci数列、CM46合法括号序列判断)