随笔- 177  文章- 0  评论- 0  阅读- 1475 
每日编程题 :统计回文
链接: https://www.nowcoder.com/practice/9d1559511b3849deaa71b576fa7009dc?tpId=85&&tqId=29
842&rp=1&ru=/activity/oj&qru=/ta/2017test/question-ranking
【题目解析】:
首先以后面对这种题目描述比较长的题,不要害怕,它里面的大部分描述都只是为题做铺垫,所以读题时抓
住重点。
什么是回文字符串,题目里面说就是一个正读和反读都一样的字符串 ,回文串也就是前后对称的字符串。本
题是判断是否是回文串的变形题。字符串本身不一定是回文,把第二个字符串插入进去看是否是回文。
【解题思路】:
本题使用暴力求解方式计算即可,遍历 str1 ,将 str2 insert 进入 str1 的每个位置,判断是否是回文,这里注意
的是,判断回文的时候,直接将字符串逆置,看是否相同就好了。是就 ++count ;需要注意的是这里不能
str1.insert(i, str2) ,这样的话 str1 改变了,判断下一个位置就不对了。所以每次使用 str1 重新给一个 str,然后str.insert(i, str2)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str1 = sc.nextLine();
String str2 = sc.nextLine();
int len = str1.length();
int n = 0;
for (int i = 0; i <= len; i++) {
// 将字符串2插入到字符串1的每个位置,再判断是否是回文
StringBuffer str = new StringBuffer(str1);
str.insert(i, str2);
//注意这里,不能直接StringBuilder str5 = str.reverse();
//因为这样str本身又变了。
StringBuilder tmp = new StringBuilder(str);
StringBuilder str5 = tmp.reverse();
if (str.toString().equals(str5.toString())) {
n++;
}
}
System.out.println(n);
}
}
 posted on   dapaige  阅读(3)  评论(0编辑  收藏  举报  
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示