最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中利用棧實(shí)現(xiàn)字符串回文算法

 更新時間:2020年12月04日 17:40:09   作者:阿飛Sirx  
給定一個由多個a和b組成的字符串?dāng)?shù)組,字符串中有一個特殊的字符X,位于字符串的正中間,例如(aaaabbbbXabaabbbb),如何判定該字符串是否回文

問題

給定一個由多個a和b組成的字符串?dāng)?shù)組,字符串中有一個特殊的字符X,位于字符串的正中間,例如(aaaabbbbXabaabbbb),如何判定該字符串是否回文

簡單算法

定義兩個下標(biāo)分別指向字符串的頭和尾,每次比較兩個下標(biāo)位置的值是否相等,如果不相等,那么輸入的
字符串不是回文,如果相等,左邊的下表加1,右邊的下表減1,重復(fù)上述步驟直至兩個下標(biāo)都指向字符串的正中間或者確定字符串不是回文

  /**
   * 判斷字符串是否是回文
   */
  public int isPalindrome(String inputStr) {
    int i = 0;
    int j = inputStr.length();
    char[] chars = inputStr.toCharArray();
    while (i < j && chars[i] == chars[j]) {
      i++;
      j--;
    }
    if (i < j) {
      System.out.println("Not a Palindrome");
      return 0;
    } else {
      System.out.println("Palindrome");
      return 1;
    }
  }

利用棧判斷是否回文

1.遍歷字符數(shù)組,
2.在遍歷過程中將經(jīng)過的每個字符(X以前的字符)入棧
3.對于鏈表的后一半,把每個元素與棧頂元素比較,如果相等,執(zhí)行一次出棧操作,并且移動到下一個元素繼續(xù)比較
4.如果比較時出現(xiàn)不相等,那么輸入的字符串不是回文
5.繼續(xù)這個過程,直至??栈蛘咦址皇腔匚?/p>

  /**
   * 利用棧判斷字符回文
   */
  public boolean isPalindromeWithStack(String inputStr) {
    char[] inputChar = inputStr.toCharArray();
    LinkedListStack s = new LinkedListStack();
    int i = 0;
    while (inputChar[i] != 'X') {
      s.push(inputChar[i]);
      i++;
    }
    i++;
    while (i < inputChar.length) {
      if (s.isEmpty())
        return false;
      if (inputChar[i] != s.pop()) {
        return false;
      }
      i++;
    }
    //將來
    return true;
  }

Java判斷是否為回文字符串

題目描述

輸入一段字符串序列,字符串可能包括字母,數(shù)字,標(biāo)點(diǎn)符號等類型字符,在判斷該字符序列是否為回文時,只需判斷字母和數(shù)字類型,其它類型自動忽略。
如:“A man, a plan, a canal: Panama” 是一段回文字符串
“race a car”則不是回文字符串

實(shí)現(xiàn)方法

從字符串的兩端逐個進(jìn)行比較,若遇到非字母或數(shù)字字符則將索引值加一或減一,如果兩端字符不同,直接返回false,直到索引值在中間相遇也沒有返回false則證明該字符串是回文字符串。

public static boolean isPalindrome(String str){
    if(str.equals(""))
      return true;
    str = str.toLowerCase();//將字符串的所有大寫字母轉(zhuǎn)小寫
    int start = 0, end = str.length() - 1;

    //從字符兩端分別逐個對比字符,不同則直接返回false
    while (start < end){
      //過濾掉非字母和數(shù)字字符
      while (!(str.charAt(start) >= 'a' && str.charAt(start) <= 'z' || str.charAt(start) >= '0' && str.charAt(start) <= '9'))
        start++;
      //過濾掉非字母和數(shù)字字符
      while (!(str.charAt(end) >= 'a' && str.charAt(end) <= 'z' || str.charAt(end) >= '0' && str.charAt(end) <= '9'))
        end--;
      //若字符不同,則直接返回false
      if(str.charAt(start) != str.charAt(end))
        return false;
      start++;
      end--;
    }
    return true;
  }

編程判斷字符串是否為回文 判斷一個字符串是否是回文,例如單詞‘level'

#include <stdio.h>
#include <string.h>

int main()
{
char a[100]= {0};
int i = 0;
int len = 0;
printf("please input character string:\n");
gets(a);
len = strlen(a); //計(jì)算輸入字符串的長度;
for(i = 0; i < (len / 2); i++) //只需要判斷前一半(len/2)長度就好了
{ 
if(a[i] != a[len - 1 - i]) //判斷是否為回文數(shù);
{
printf("不是回文數(shù)\n");
return 0;
}
}
printf("是回文數(shù)\n");
return 0;
}

到此這篇關(guān)于java中利用棧實(shí)現(xiàn)字符串回文算法的文章就介紹到這了,更多相關(guān)字符串回文算法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring5.2.x 源碼本地環(huán)境搭建的方法步驟

    Spring5.2.x 源碼本地環(huán)境搭建的方法步驟

    這篇文章主要介紹了Spring5.2.x 源碼本地環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • idea中創(chuàng)建jsp項(xiàng)目的詳細(xì)實(shí)戰(zhàn)步驟

    idea中創(chuàng)建jsp項(xiàng)目的詳細(xì)實(shí)戰(zhàn)步驟

    才學(xué)javaWeb,以防自己忘記創(chuàng)建項(xiàng)目的過程,所以淺淺的記錄一下吧,下面這篇文章主要給大家介紹了關(guān)于idea中創(chuàng)建jsp項(xiàng)目的詳細(xì)步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Java實(shí)現(xiàn)MySQL數(shù)據(jù)實(shí)時同步至Elasticsearch的方法詳解

    Java實(shí)現(xiàn)MySQL數(shù)據(jù)實(shí)時同步至Elasticsearch的方法詳解

    MySQL擅長事務(wù)處理,而Elasticsearch(ES)則專注于搜索與分析,將MySQL數(shù)據(jù)實(shí)時同步到ES,可以充分發(fā)揮兩者的優(yōu)勢,下面我們就來看看如何使用Java實(shí)現(xiàn)這一功能吧
    2025-03-03
  • Java處理字節(jié)類型數(shù)據(jù)的實(shí)現(xiàn)步驟

    Java處理字節(jié)類型數(shù)據(jù)的實(shí)現(xiàn)步驟

    字節(jié)(Byte)是計(jì)算機(jī)信息技術(shù)用于計(jì)量存儲容量的一種基本單位,通常簡寫為B,在ASCII編碼中1Byte可以表示一個標(biāo)準(zhǔn)的英文字符,包括大寫字母、小寫字母、數(shù)字、標(biāo)點(diǎn)符號和控制字符等,本文給大家介紹了Java如何優(yōu)雅的處理字節(jié)類型數(shù)據(jù),需要的朋友可以參考下
    2024-07-07
  • Java 中的垃圾回收機(jī)制詳解

    Java 中的垃圾回收機(jī)制詳解

    這篇文章主要為大家詳細(xì)介紹了Java垃圾回收機(jī)制的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java中的回調(diào)

    Java中的回調(diào)

    這篇文章主要介紹了Java中回調(diào)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)java,感興趣的朋友可以了解下
    2020-08-08
  • Java微信公眾平臺之消息管理

    Java微信公眾平臺之消息管理

    這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺之消息管理的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Java線程池高頻面試題總結(jié)

    Java線程池高頻面試題總結(jié)

    在進(jìn)程和線程的相關(guān)面試題中還有一部分是關(guān)于多線程和線程池的,也是在這一部分中比較??疾斓膬?nèi)容。本篇文章就帶你了解一下,希望能給你帶來幫助
    2021-08-08
  • java 多線程Thread與runnable的區(qū)別

    java 多線程Thread與runnable的區(qū)別

    這篇文章主要介紹了java 多線程Thread與runnable的區(qū)別的相關(guān)資料,java線程有兩種方法繼承thread類與實(shí)現(xiàn)runnable接口,下面就提供實(shí)例幫助大家理解,需要的朋友可以參考下
    2017-08-08
  • JAVA程序內(nèi)存溢出問題原因分析

    JAVA程序內(nèi)存溢出問題原因分析

    這篇文章主要介紹了JAVA程序內(nèi)存溢出問題原因,較為詳細(xì)的分析java導(dǎo)致程序內(nèi)存溢出的原因與解決方法,需要的朋友可以參考下
    2015-06-06

最新評論

武夷山市| 增城市| 台北市| 长治市| 资兴市| 仪陇县| 同心县| 临颍县| 西丰县| 腾冲县| 马山县| 井陉县| 班玛县| 和林格尔县| 含山县| 四川省| 邹平县| 林周县| 鄢陵县| 泉州市| 镇远县| 海城市| 胶南市| 绿春县| 靖宇县| 新闻| 泸州市| 固原市| 文水县| 黑河市| 许昌市| 海城市| 渭源县| 南昌县| 高雄市| 南投市| 资源县| 沧州市| 蕲春县| 遂川县| 华池县|