/**
* 如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串
* 为交错O1串。例如:”1”,”10101”,”0101010”都是交错01串。
* 小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一
* 个交错01串。小易需要你帮帮忙求出最长的这样的子串的长度是多少。
* 输入描述:
* 输入包括字符串s,s 的长度length(I s length < 50),字符串中只包含’0‘和’1’
* 输出描述:
* 输出一个整数,表示最长的满足要求的子串长度。
* 输入例子1:
* 111101111
* 输出例子1:
* 3
*/
import java.util.Scanner;
public class CrossString {
public static int crossString(String s){
int length = 1;
int max = 0;
if(s.length()>50 || s.isEmpty() || s.length() == 1 ){
System.out.println("格式错误,不存在交错01串");
return 0;
}
for (int i = 1; i <s.length() ; i++) {
if(s.charAt(i) == s.charAt(i-1)){
length = 1;
}else{
length++;
}
max = Math.max(length,max);
}
return max;
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("输入字符串:");
String s = scan.nextLine();
System.out.println("原字符串为:"+s);
int length = crossString(s);
System.out.println("交错01字符串长度:"+length);
}
}
/**
* 在给定n个数中找出两个数的和为固定值k。
* 输入n,再输入n个数,最后输入k
* 例输入:
* 9
* 2 3 5 4 6 12 15 13 4
* 16
* 输出:3 13
*/
import org.junit.Test;//单元测试包
import java.util.Scanner;
public class Sum {
/**
*计算
* @param ints
* @param k
*/
public void sum(int[] ints,int k){
if(ints==null || ints.length==0){
System.out.println("请输入正确的数组");
}
int num1=0;
int num2=0;
for (int i = 0; i < ints.length; i++) {
for (int j = i+1; j < ints.length; j++) {
if (ints[i]+ints[j]==k){
num1 = ints[i];
num2 = ints[j];
System.out.println("两个数分别是:"+num1+" "+num2);
}
}
}
if(num1==0 && num2==0) {
System.out.println("没有这两个值");
}
}
//测试
@Test
public void test(){
int[] ints = {1,2,3,4,5,6,7,8};
int k = 13;
sum(ints,k);
}
}
/**
* 验证括号是否能正常闭合。包含 () [] {}。
* 例如: {[()]}{}()[] 这个是能正常闭合的。(})]{ 这个是不能正常闭合的。
* 输入:字符串s。
* 输出:YES或者NO。
*/
import org.junit.Test;
import java.util.ArrayDeque;
public class CloseBrackets {
public String isCloseBrackets(String s){
ArrayDeque<Character> bracket = new ArrayDeque<>();
if(s.length()==0 || s == null){
System.out.println("字符串为空");
return "no";
}
for (int i = 0; i < s.length(); i++) {
char b = s.charAt(i);
if(b=='(' || b=='{' || b=='['){
bracket.push(b);
continue;
}
if((b==')' || b=='}' || b==']') && bracket.isEmpty()){
return "no";
}
if((b==')' && bracket.peek()=='(') || (b=='}' && bracket.peek()=='{') || (b==']' && bracket.peek()=='[')){
bracket.pop();
continue;
}
}
if(bracket.isEmpty()){
return "yes";
}
return "no";
}
//测试
@Test
public void test(){
String s = "({[]})())";
String bool = isCloseBrackets(s);
System.out.println(bool);
}
}