国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

leetcode每日一題-859:親密字符串

張遷 / 2872人閱讀

摘要:每日一題親密字符串鏈接親密字符串題目分析題目本身不是很難,但是有不少需要注意的地方,逐一來進(jìn)行分析。首先如果兩個(gè)字符串不一樣長,那么肯定是。

leetcode每日一題-859:親密字符串

鏈接

親密字符串


題目



分析

題目本身不是很難,但是有不少需要注意的地方,逐一來進(jìn)行分析。首先如果兩個(gè)字符串不一樣長,那么肯定是false。然后考慮長度相等的情況,如果s和goal剛開始就一樣答案是什么呢?如果是類似于abab這種類型的,那么也是false,因?yàn)檫@種交換之后一定就不相等了;如果是aaaa這種,在一些對(duì)應(yīng)位置有相同的元素,那么交換后是true。在來考慮值不相等的情況,首先從前往后遍歷找到第一個(gè)不一樣的位置下標(biāo),然后從后往前遍歷找到最后一個(gè)不一樣的。假設(shè)兩個(gè)字符串只有一個(gè)位置不一樣,那么答案一定是false,如果兩個(gè)位置不一樣的話,交換這兩個(gè)位置的字符,然后根據(jù)交換的s和goal值進(jìn)行判斷即可。



代碼

C++

class Solution {public:    unordered_map m;    bool buddyStrings(string s, string goal) {        if(s.size() != goal.size()) return false;        int idx1 = -1, idx2 = -1;        for(int i=0 ; i=0 ; i--)        {            if(s[i] != goal[i])            {                idx2 = i;                break;            }        }        if(idx1 != idx2 and idx1 != -1 and idx2 != -1)        {            swap(s[idx1], s[idx2]);            return s == goal;        }         if(idx1 == idx2 and idx2 != -1) return false;        for(auto ve : m)        {            if(ve.second > 1) return true;        }        return false;    }};

Java

class Solution {    public boolean buddyStrings(String s, String goal) {        if (s.length() != goal.length()) {            return false;        }                if (s.equals(goal)) {            int[] count = new int[26];            for (int i = 0; i < s.length(); i++) {                count[s.charAt(i) - "a"]++;                if (count[s.charAt(i) - "a"] > 1) {                    return true;                }            }            return false;        } else {            int first = -1, second = -1;            for (int i = 0; i < goal.length(); i++) {                if (s.charAt(i) != goal.charAt(i)) {                    if (first == -1)                        first = i;                    else if (second == -1)                        second = i;                    else                        return false;                }            }            return (second != -1 && s.charAt(first) == goal.charAt(second) &&                    s.charAt(second) == goal.charAt(first));        }    }}作者:LeetCode-Solution

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/124770.html

相關(guān)文章

  • LeetCode 859 親密符串[模擬] HERODING的LeetCode之路

    摘要:解題思路一道并不簡單的模擬題,需要考慮的情況總結(jié)下來有三種長度不同返回完全相同且有重復(fù)字符返回字符串有不相等的兩個(gè)地方需要查看它們交換后是否相等即可。 解題思路:...

    aisuhua 評(píng)論0 收藏0
  • leetcode每日一題-423:從英文中重建數(shù)字

    摘要:每日一題從英文中重建數(shù)字鏈接從英文中重建數(shù)字題目分析首先我們先分析每個(gè)字母的組成,然后發(fā)現(xiàn)一些字符只在一個(gè)單詞中出現(xiàn),我們先去統(tǒng)計(jì)一下這些單詞個(gè)數(shù)。統(tǒng)計(jì)完次數(shù),按升序排列即可。 ...

    kyanag 評(píng)論0 收藏0
  • leetcode每日一題-520:檢測(cè)大寫字母

    摘要:每日一題檢測(cè)大寫字母鏈接檢測(cè)大寫字母題目分析模擬分析題遍歷一下字符串統(tǒng)計(jì)一下其中的大小寫字母然后根據(jù)大小寫字母的數(shù)量判斷即可代碼統(tǒng)計(jì)大寫小寫字母的數(shù)量這里使用是為了避免其他字符的干擾如果字符串都是大寫小寫字母 ...

    flybywind 評(píng)論0 收藏0
  • LeetCode每日一題: 同構(gòu)符串(No.205)

    摘要:題目同構(gòu)字符串給定兩個(gè)字符串和,判斷它們是否是同構(gòu)的。所有出現(xiàn)的字符都必須用另一個(gè)字符替換,同時(shí)保留字符的順序。若找到為的則與比較,不相等則不為同構(gòu),相等就繼續(xù)向下。循環(huán)結(jié)束后沒有中途即為同構(gòu)字符串返回。 題目: 同構(gòu)字符串 給定兩個(gè)字符串 s 和 t,判斷它們是否是同構(gòu)的。 如果 s 中的字符可以被替換得到 t ,那么這兩個(gè)字符串是同構(gòu)的。 所有出現(xiàn)的字符都必須用另一個(gè)字符替換,同時(shí)保留...

    Carbs 評(píng)論0 收藏0
  • leetcode每日一題-559:N叉樹的最大深度

    摘要:每日一題叉樹的最大深度鏈接叉樹的最大深度題目分析簡單的搜索題目。只需要從根節(jié)點(diǎn)開始一下整個(gè)叉樹就可以得到答案了。主要是對(duì)要理解和掌握叉樹的遍歷。代碼作者作者 lee...

    caiyongji 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<