日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Isomorphic Strings

發(fā)布時(shí)間:2025/6/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Isomorphic Strings 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題描述

給定兩個(gè)字符串s和t,判斷它們是否同構(gòu),是則返回true,否則返回false。

按照如下替換規(guī)則,如果字符串t能夠通過替換字符串s中所有字符得到,則字符串s和字符串t同構(gòu)。

  • 替換時(shí),必須保證字符串中各字符的出現(xiàn)順序不變;
  • 替換時(shí),所有相同的字符只能被一個(gè)唯一字符替換;
  • 替換時(shí),不同的字符不能被同一個(gè)字符替換;
  • 替換時(shí),一個(gè)字符可以被它本身所替換。
  • 注意:假定字符串s與字符串t長(zhǎng)度相同。

    ?

    輸入示例

    input1input2input3
    "egg""foo""paper"
    "add""bar""title"

      

    ?

    ?

    ?

    輸出示例

    output1output2output3
    truefalsetrue

    ?

     

    ?


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

  • 注意到這里只是針對(duì)字符,所以利用ASCII碼的關(guān)系在對(duì)應(yīng)的字符的數(shù)位上存儲(chǔ)該字符在字符串中上一次出現(xiàn)的位置。
  • 判斷字符串s與字符串t在對(duì)應(yīng)下標(biāo)位置i上的字符在該字符串中上次出現(xiàn)的位置是否相同。
  • 如果不同,則說明字符串s與字符串t不同構(gòu),返回false。
  • 如果相同,至少說明字符串s的子字符串s.substring(0, i)與字符串t的子字符串t.substring(0, i)同構(gòu),應(yīng)該繼續(xù)判斷字符串s與字符串t在對(duì)應(yīng)下個(gè)位置上的字符在該字符串中上次出現(xiàn)的位置是否相同,直至到最后一個(gè)字符。如果最后一個(gè)字符的判斷結(jié)果仍然相同,則說明字符串s與字符串t同構(gòu),返回true。
  • 1 public class Solution { 2 public boolean isIsomorphic(String s, String t) { 3 int[] m = new int[256]; 4 for(int i=0; i<s.length(); i++){ 5 if(m[s.charAt(i)] != m[t.charAt(i)+128]) return false; 6 m[s.charAt(i)] = m[t.charAt(i)+128] = i+1; 7 } 8 return true; 9 } 10 }

    轉(zhuǎn)載于:https://www.cnblogs.com/shenxiaolong/p/6790311.html

    總結(jié)

    以上是生活随笔為你收集整理的Isomorphic Strings的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。