笔试强训(五)

一、选择题

(1)下列有关Java异常处理的叙述正确的是( ABD)
A.finally是为了确保一段代码不管是否捕获异常都会执行的一段代码
B.throws用来声明一个成员方法可能抛出的各种非运行异常
C.final可以声明属性和方法,分别表示属性的不可变及方法的不可继承
D.throw用来明确的抛出一个异常情况

final可以声明属性和方法,分别表示属性的不可变及方法的不可重写

二、编程题

2.1 统计回文串

2.1.1 题目

在这里插入图片描述

2.1.2 题解

思路将字符串B分别插入到A的每个可能的位置,然后判断插入后的字符串是否是回文串,如果是count++,否则判断下一个插入位置

代码:

import java.util.*;
public class Main{
    
    public static void main(String[] args){
        
        Scanner scanner=new Scanner(System.in);
        String str1=scanner.nextLine();
        String str2=scanner.nextLine();
        int count=0;
        String str=str2+str1;
        if(isPail(str)) count++;
        for(int i=1;i<str1.length();i++){
            String tmp=str1.substring(0,i);
            StringBuilder sb=new StringBuilder(tmp);
            sb.append(str2);
            sb.append(str1.substring(i,str1.length()));
            if(isPail(sb.toString())){
                count++;
            }
        }
        if(isPail(str1+str2)) count++;
        System.out.println(count);
    }
    public  static  boolean isPail(String str){
         int l=0;
         int r=str.length()-1;
         while(l<r){
            if(str.charAt(l)!=str.charAt(r)){
                return false;
            }else {
                l++;
                r--;
            }
         }
         return true;
    }
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值