合法括号序列判断

import java.util.*;
public class Parenthesis {
public boolean chkParenthesis(String A, int n) {
Stack<Character>stack=new Stack<>();
char[]arr=A.toCharArray();
for(char c:arr){
if(c=='('){
stack.push(')');
} else if(stack.isEmpty()||stack.pop()!=c){
return false;
}
}
return stack.isEmpty();
}
}
求最小公倍数

import java.util.*;
public class Main{
public static long gcd (long a, long b) {
if (b == 0){
return a;
}
return gcd (b,a%b);
}
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
long a = sc.nextInt();
long b = sc.nextInt();
System.out.println(a*b/gcd(a,b));
}
}
两种排序方法

import java.util.*;
public class Main{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String[]arr=new String[n];
for(int i=0;i<n;i++){
arr[i]=sc.nextLine();
}
if(isLength(arr)&&isDict(arr)){
System.out.println("both");
}
else if(isLength(arr)&&!isDict(arr)){
System.out.println("lengths");
}
else if(isDict(arr)&&!isLength(arr)){
System.out.println("lexicographically");
}
else{
System.out.println("none");
}
}
public static boolean isLength(String[]arr){
for(int i=0;i<arr.length-1;i++){
if (arr[i].length() >=arr[i + 1].length()) {
return false;
}
}
return true;
}
public static boolean isDict(String []arr) {
for(int i=0;i<arr.length-1;i++){
if (arr[i].compareTo(arr[i +1]) >=0) {
return false;
}
}
return true;
}
}
二叉树的最近公共祖先

public TreeNode nearestCommonAncestor (TreeNode root, TreeNode p, TreeNode q) {
if(root==null){
return null;
}
if(root.val==p.val||root.val==q.val){
return root;
}
TreeNode left=nearestCommonAncestor(root.left,p,q);
TreeNode right=nearestCommonAncestor(root.right,p,q);
if(left!=null&&right!=null){
return root;
}
return left==null?right:left;
}