检查字符串是否为回文

2023-11-22

A 回文是一个单词、短语、数字或其他单位序列,可以在任一方向以相同的方式阅读。

为了检查一个单词是否是回文,我获取该单词的字符数组并比较字符。我测试了它,它似乎有效。但我想知道这是否正确或者是否有需要改进的地方。

这是我的代码:

public class Aufg1 {
    public static void main(String[] args) {
        String wort = "reliefpfpfeiller";
        char[] warray = wort.toCharArray(); 
        System.out.println(istPalindrom(warray));       
    }

    public static boolean istPalindrom(char[] wort){
        boolean palindrom = false;
        if(wort.length%2 == 0){
            for(int i = 0; i < wort.length/2-1; i++){
                if(wort[i] != wort[wort.length-i-1]){
                    return false;
                }else{
                    palindrom = true;
                }
            }
        }else{
            for(int i = 0; i < (wort.length-1)/2-1; i++){
                if(wort[i] != wort[wort.length-i-1]){
                    return false;
                }else{
                    palindrom = true;
                }
            }
        }
        return palindrom;
    }
}

为什么不只是:

public static boolean istPalindrom(char[] word){
    int i1 = 0;
    int i2 = word.length - 1;
    while (i2 > i1) {
        if (word[i1] != word[i2]) {
            return false;
        }
        ++i1;
        --i2;
    }
    return true;
}

Example:

输入是“andna”。
i1 将为 0,i2 将为 4。

我们将比较第一个循环迭代word[0] and word[4]。它们相等,因此我们增加 i1(现在为 1)并减少 i2(现在为 3)。
所以我们然后比较n。它们相等,因此我们增加 i1(现在是 2)并减少 i2(现在是 2)。
现在 i1 和 i2 相等(它们都是 2),因此 while 循环的条件不再为 true,因此循环终止并且我们返回 true。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查字符串是否为回文 的相关文章

  • JavaFX 控制器如何访问其他服务?

    我将 JavaFX 2 与 Scala 一起使用 我有class Application extends javafx application Application它执行诸如读取应用程序配置等操作 然后它会启动主窗口 该主窗口需要连接到一
  • 错误“无法将参数 '1' 的 'std::basic_string' 转换为 'const char*' 到 'int system(const char*)'”

    当我尝试编译脚本时 出现此错误 类型 const char 和 const char 6 到二进制 operator 的操作数无效 这里应该是错误 string name john system quickscan exe resoluti
  • 如何在聚合框架中按位置修改数组中的值

    假设有一个简单的文档 array a b c d 如何修改second值在聚合 With update这很简单 db collection updateOne set array 1 B gives array a B c d 在聚合框架中
  • Java:输入/使用“try-catch”块的开销?

    这个问题说明了一切 尽管命中率不是很高 我测得速度慢了 1 5 倍到 2 倍 但使用 try catch 的字节码和不使用 try catch 的字节码之间没有区别 那么是什么让它通常变慢呢 PL 请注意 问题不是抛出异常的开销 而是进入
  • JavaScript 在对象中创建数组并将数据推送到数组

    我是编程新手 我正在尝试 React 并具有函数 addComment 当用户向新闻添加评论时执行该函数 此时我需要创建一个属性comments 数组 并分配或推送到该数组输入评论值价值 但现在我只重写了数组的 0 个元素 无法添加新元素
  • Jenkins 中未找到 Maven

    我正在 Jenkins 中运行我的 Maven Spring 项目 只是第一次测试它 使用 shell 脚本选项 mvn spring boot run 我收到构建错误 Users Shared Jenkins tmp jenkins808
  • Jackson - 将值传递给 JsonDeserializer

    我有一个现有的类层次结构 如下所示 public interface Service String getId String getName public class FooTask extends AbstractTask private
  • 如何同时运行两个FOR循环

    我正在使用加速度计 第一个代码是振动检测器 代码1 if sensor SensorManager SENSOR ACCELEROMETER long curTime System currentTimeMillis long now Sy
  • Hibernate 时间戳 - 毫秒精度

    似乎以毫秒精度存储时间戳是休眠的一个已知问题 我在数据库中的字段最初设置为时间戳 3 但我也尝试过日期时间 3 不幸的是 它没有任何区别 我尝试过使用 Timestamp 和 Date 类 最近我开始使用 joda time 库 经过所有这
  • 全屏 Swing 组件无法在 Mac OS X Mountain Lion 上的 Java 7 上接收键盘输入

    12 21 更新 7u10 最近发布 确认 问题仍然存在 值得庆幸的是 解决方法仍然有效 11 7 更新 我们有一个解决方法 来自 Oracle 的 Leonid Romanov 在 openjdk java net 邮件列表上提供了一些关
  • Spring Hibernate 4 支持

    我正在使用 Hibernate 4 CR1 我的应用程序之前使用 Spring hibernate 支持 版本 3 我还没有找到任何相关信息 是否有任何迹象表明 Spring 何时 或哪个版本 将提供对 Hibernate 4 的支持 UP
  • 从文件夹中读取java文件

    我开发了一个应用程序 可以从用户选择的文件夹中读取文件 它显示每个文件中有多少行代码 我只想在文件选择器中显示 Java 文件 具有 java 扩展名的文件 下面是我的代码 public static void main String ar
  • Java:如何实现通用二叉搜索树?

    到目前为止 我一直在编写一个 Node 类 class Node private value private Node left private Node right public int getValue return value pub
  • 带句点和逗号的自定义格式数字

    有点相关这个问题 https stackoverflow com questions 4738853 java decimal format parse to return double value with specified numbe
  • 获取 javax.crypto.IllegalBlockSizeException:使用填充密码解密时输入长度必须是 16 的倍数?

    使用 tomcat 我有两个 Web 应用程序 即 app1 和 app2 我以加密形式 使用下面的代码 将 url 从 app1 发送到 app2 然后在app2 我解密了这个加密的网址 但我在第 50 行低于异常decryp方法 Get
  • JarSplice 的命令行参数?

    罐子接头 http ninjacave com jarsplice允许将 jar 文件以及其他依赖项和库聚合到一个可执行 jar 文件中 但是 我的可执行 jar 需要两个命令行参数 当我调用 JarSplice jar 时 这两个参数似乎
  • 使用java连接到VPN后面的http服务器

    我想通过 VPN 连接到 REST Web 服务 Java 有没有办法在不使用操作系统功能的情况下建立到 VPN 网关的 pptp l2tp ipsec 连接和 HTTP 请求隧道 这很重要 因为我将从 servlet 连接到多个休息服务
  • JProgressBar 不在循环内更新

    我目前正在自学Java 我一直在尝试不同的事情 比如JRadioButtons JcomboBoxes 等 现在 我正在尝试使用JProgressBar但它似乎无法正常工作 相关代码段 JProgressBar progress JButt
  • 如何在二维数组中找到字符串?

    我有一个看起来像这样的数组 var array a b c d e f 我希望能够在数组中搜索字符串 d 并返回对应的值 c try function find str array for var i in array if array i
  • Hibernate 对于 Android 应用程序来说是一种杀伤力吗? [复制]

    这个问题在这里已经有答案了 我正在为我的 Android 应用程序寻找一个好的 ORM 乍一看似乎对于移动设备我更喜欢使用更简单的东西 问题是我只是在这里假设 没有真正的证据 所以我想我应该询问社区的意见 也许有人有过这样的经历 它是一个相

随机推荐

  • 在 XAML 中使用矩形形状作为剪辑

    有没有办法可以使用普通的矩形 形状 作为 XAML 中另一个对象的剪辑的一部分 看起来我应该能够做到 但解决方案却让我困惑
  • 在pyspark中读取Excel(.xlsx)文件

    我正在尝试从 PySpark 中的本地路径读取 xlsx 文件 我写了下面的代码 from pyspark shell import sqlContext from pyspark sql import SparkSession spark
  • 无法附加或安装卷:等待条件超时

    我本地集群中的一个 pod 无法启动 因为我得到Unable to attach or mount volumes unmounted volumes nats data volume unattached volumes nats dat
  • GWT 2.1 编辑器框架

    我正在寻找一些有关如何使用的文档或示例GWT 2 1 编辑器框架 谷歌的文档呃 有点缺乏 从有限的可用文档中 我了解到编辑器 理论上 允许您更轻松地将 GUI 元素绑定到数据模型 这将减轻将数据复制到 TextArea ListBox Ch
  • 新升级的声纳不显示项目或用户

    您好 我遇到的问题是从 5 1 2 gt 5 6 gt 6 4 升级后 我相信我遵循了记录的升级路径 该系统在 5 1 2 和 5 6 上运行良好 但现在在 6 4 上 加载第一件事的初始项目页面是空的 上面写着 一旦你分析了一些项目 它们
  • require: 'ngModel' 是什么意思?

    这是我的指令的 HTML
  • 如何在 Chrome 打包应用程序中设置 script-src?

    我正在尝试从复杂的网络应用程序创建 Chrome 打包应用程序 我目前收到错误 拒绝执行内联事件处理程序 因为它违反了 以下内容安全策略指令 default src self chrome extension resource 请注意 sc
  • 为什么访问令牌会过期?

    我刚刚开始使用 Google API 和 OAuth2 当客户端授权我的应用程序时 我会获得一个 刷新令牌 和一个短暂的 访问令牌 现在 每次访问令牌过期时 我都可以将刷新令牌发布给 Google 他们会给我一个新的访问令牌 我的问题是访问
  • 如何从以下 .htaccess 重写规则中排除特定文件类型?

    如何从以下重写规则中排除特定文件类型 xml 和 txt RewriteEngine On RewriteBase RewriteCond REQUEST FILENAME f RewriteCond REQUEST URI Rewrite
  • 如何为 Windows 安装 libjpeg?

    我下载了一些使用 libjpeg 的代码 但源文件中不包含 dll 我试图使其正确编译 执行 我使用的是VS2010 在我的源文件中我有 include jpeglib h and in Linker gt Input gt Additio
  • 使用 C# 中的函数返回两个字符串[重复]

    这个问题在这里已经有答案了 我有一个函数想要返回两个值 这可能吗 这是我的代码 但它似乎不喜欢我想返回两个值 public string PlayerCards string player1C1 string player1C2 gener
  • 无法连接到 Kubernetes 集群中的 mongodb 服务

    我在 Google Cloud 上有一个 Kubernetes 集群 有一个数据库服务 它在 mongodb 部署之前运行 我还有一系列微服务 它们正在尝试连接到该数据存储 然而 他们似乎找不到主人 apiVersion v1 kind S
  • Intellij 13 鼠标悬停解决方案上弹出的自动文档不再起作用[重复]

    这个问题在这里已经有答案了 我一直在使用这个解决方案适用于 IntelliJ 12 用于在鼠标悬停时自动弹出快速文档 但是新版本的 IntelliJ 13 当你设置auto show quick doc true in the idea p
  • Durandal:在合成过程中显示“正在加载...”

    当 activate 方法执行其操作时 我可以轻松地显示加载消息 如下所示 div div class text center style margin 75px i class fa fa spinner fa spin i div di
  • 使用 mamp 在本地测试电子邮件

    首先 我对这种本地主机服务器设置完全陌生 过去几天我一直在试图解决这个问题 但没有运气 我正在开发一个带有电子邮件表单的 php 网站 我在一个MAC using codekit and 免费的MAMP一切正常 现在我的问题是 是否可以在本
  • .Net 超时:WaitForSingleObject 与 Timer

    我正在异步操作 一系列网络 IO 上实现超时 但我不确定哪个 更好 从分配 性能 的角度来看 创建 EventWaitHandle 并使用 RegisterWaitForSingleObject 或者只是创建一个 Timer并使用它的Tic
  • 为什么没有 cv2.waitkey() 则 cv2.imshow() 不会渲染?

    如果没有 cv2 waitkey 方法 cv2 imshow 将显示黑色窗口 为什么不等待就无法正常渲染 cap cv2 VideoCapture video path while cap isOpened ret frame cap re
  • 如何在 Swing 应用程序中隐藏光标?

    有没有办法隐藏光标 除了使用透明图像作为光标之外 当用户将鼠标指向 JFrame 中的 JPanel 之外时 我想隐藏光标 看来Cursor类一开始就没有 空白 光标 因此可以使用以下命令定义一个新的 空白 光标Toolkit create
  • 在SQS队列中使用许多消费者

    我知道可以使用多个线程来使用 SQS 队列 我想保证每条消息都会被消耗一次 我知道可以更改消息的可见性超时 例如等于我的处理时间 如果我的进程花费的时间超过可见性超时 例如连接速度慢 其他线程可以使用相同的消息 保证消息被处理一次的最佳方法
  • 检查字符串是否为回文

    A 回文是一个单词 短语 数字或其他单位序列 可以在任一方向以相同的方式阅读 为了检查一个单词是否是回文 我获取该单词的字符数组并比较字符 我测试了它 它似乎有效 但我想知道这是否正确或者是否有需要改进的地方 这是我的代码 public c