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

Java C++ leetcode執(zhí)行一次字符串交換能否使兩個(gè)字符串相等

 更新時(shí)間:2022年10月11日 17:04:58   作者:AnjaVon  
這篇文章主要為大家介紹了Java C++ leetcode1790執(zhí)行一次字符串交換能否使兩個(gè)字符串相等,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目要求

思路:模擬

Java

class Solution {
    public boolean areAlmostEqual(String s1, String s2) {
        if (s1.length() != s2.length())
            return false;
        int a = -1, b = -1;
        for (int i = 0; i < s1.length(); i++) {
            if (s1.charAt(i) == s2.charAt(i))
                continue;
            if (a == -1)
                a = i; // 第一個(gè)不同
            else if (b == -1)
                b = i; // 第二個(gè)不同
            else
                return false; // 兩個(gè)以上不相同
        }
        if (a == -1) // 全相同
            return true;
        if (a != -1 && b == -1) // 一個(gè)不同
            return false;
        return s1.charAt(a) == s2.charAt(b) && s1.charAt(b) == s2.charAt(a); // 不同位置字符相同
    }
}
  • 時(shí)間復(fù)雜度:O(n)
  • 空間復(fù)雜度:O(1)

C++

class Solution {
public:
    bool areAlmostEqual(string s1, string s2) {
        if (s1.size() != s2.size())
            return false;
        int a = -1, b = -1;
        for (int i = 0; i < s1.size(); i++) {
            if (s1[i] == s2[i])
                continue;
            if (a == -1)
                a = i; // 第一個(gè)不同
            else if (b == -1)
                b = i; // 第二個(gè)不同
            else
                return false; // 兩個(gè)以上不相同
        }
        if (a == -1) // 全相同
            return true;
        if (a != -1 && b == -1) // 一個(gè)不同
            return false;
        return s1[a] == s2[b] && s1[b] == s2[a]; // 不同位置字符相同
    }
};
  • 時(shí)間復(fù)雜度:O(n)
  • 空間復(fù)雜度:O(1)

Rust

  • 記得要把字符串改成可操作的……
impl Solution {
    pub fn are_almost_equal(s1: String, s2: String) -> bool {
        if (s1.len() != s2.len()) {
            return false;
        }
        let n = s1.len();
        let (mut a, mut b) = (n, n);
        let (s1, s2) = (s1.as_bytes(), s2.as_bytes());
        for i in 0..n {
            if s1[i] == s2[i] {
                continue;
            }
            if a == n {
                a = i; // 第一個(gè)不同
            }
            else if b == n {
                b = i; // 第二個(gè)不同
            }
            else {
                return false; // 兩個(gè)以上不相同
            }
        }
        if a == n { // 全相同
            return true;
        }
        if a != n && b == n { // 一個(gè)不同
            return false;
        }
        s1[a] == s2[b] && s1[b] == s2[a] // 不同位置字符相同
    }
}
  • 時(shí)間復(fù)雜度:O(n)
  • 空間復(fù)雜度:O(1)

以上就是Java C++ leetcode執(zhí)行一次字符串交換能否使兩個(gè)字符串相等的詳細(xì)內(nèi)容,更多關(guān)于Java C++ 字符串交換相等的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • springboot注解Aspect實(shí)現(xiàn)方案

    springboot注解Aspect實(shí)現(xiàn)方案

    本文提供一種自定義注解,來實(shí)現(xiàn)業(yè)務(wù)審批操作的DEMO,不包含審批流程的配置功能。對(duì)springboot注解Aspect實(shí)現(xiàn)方案感興趣的朋友一起看看吧
    2022-01-01
  • intellij idea設(shè)置統(tǒng)一JavaDoc模板的方法詳解

    intellij idea設(shè)置統(tǒng)一JavaDoc模板的方法詳解

    這篇文章主要介紹了intellij idea設(shè)置統(tǒng)一JavaDoc模板的方法詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 10個(gè)微妙的Java編碼最佳實(shí)踐

    10個(gè)微妙的Java編碼最佳實(shí)踐

    這篇文章讓我與你分享10個(gè)微妙的Java編碼最佳實(shí)踐,需要的朋友可以參考下
    2017-11-11
  • java線程間通訊的一些方法總結(jié)

    java線程間通訊的一些方法總結(jié)

    這篇文章主要介紹了java線程間通訊的一些方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • IDEA中的.iml文件和.idea文件的作用及意義

    IDEA中的.iml文件和.idea文件的作用及意義

    iml是 項(xiàng)目標(biāo)識(shí)文件,每一個(gè)模塊都有一個(gè)iml文件,存儲(chǔ)模塊的相關(guān)信息,跟eclipse的project文件是一樣的功能,這篇文章主要介紹了IDEA中的.iml文件和.idea文件的作用,需要的朋友可以參考下
    2023-09-09
  • Mybatis事務(wù)如何跟Spring結(jié)合(數(shù)據(jù)庫事務(wù)特性和Spring事務(wù)管理源碼)

    Mybatis事務(wù)如何跟Spring結(jié)合(數(shù)據(jù)庫事務(wù)特性和Spring事務(wù)管理源碼)

    MyBatis與Spring的事務(wù)結(jié)合主要是通過Spring的事務(wù)管理和MyBatis的數(shù)據(jù)庫操作來實(shí)現(xiàn)的,在本文中,我們將從數(shù)據(jù)庫事務(wù)特性和Spring事務(wù)管理源碼兩個(gè)角度來分析MyBatis事務(wù)如何與Spring結(jié)合到一起的原理,感興趣的朋友一起看看吧
    2024-01-01
  • java中Hibernate面試知識(shí)點(diǎn)整理

    java中Hibernate面試知識(shí)點(diǎn)整理

    在本篇文章里小編給大家整理的是一篇關(guān)于java中Hibernate面試知識(shí)點(diǎn)整理內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-01-01
  • 在SpringBoot中配置日期格式化的方法詳解

    在SpringBoot中配置日期格式化的方法詳解

    通常情況下,發(fā)起一個(gè) Http 請(qǐng)求,Spring Boot 會(huì)根據(jù)請(qǐng)求路徑映射到指定 Controller 上的某個(gè)方法的參數(shù)上,接著,Spring 會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換,對(duì)于日期類型的參數(shù),Spring 默認(rèn)是沒有配置如何將字符串轉(zhuǎn)換成日期類型的,本文將給大家介紹在SpringBoot中配置日期格式化的方法
    2023-10-10
  • maven中添加memcached.jar的配置步驟

    maven中添加memcached.jar的配置步驟

    在Java項(xiàng)目中使用Maven管理依賴時(shí),如果需要添加??memcached.jar??依賴,可以通過本文介紹的步驟進(jìn)行配置,文章通過代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-12-12
  • SpringBoot+MyBatisPlus+Vue 前后端分離項(xiàng)目快速搭建過程(后端)

    SpringBoot+MyBatisPlus+Vue 前后端分離項(xiàng)目快速搭建過程(后端)

    這篇文章主要介紹了SpringBoot+MyBatisPlus+Vue 前后端分離項(xiàng)目快速搭建過程(后端),快速生成后端代碼、封裝結(jié)果集、增刪改查、模糊查找,畢設(shè)基礎(chǔ)框架,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05

最新評(píng)論

铁岭县| 澳门| 封丘县| 海伦市| 武义县| 苏尼特左旗| 海盐县| 临城县| 大化| 宜兰市| 鄢陵县| 白银市| 屏山县| 巴楚县| 五河县| 星座| 武城县| 黎平县| 东至县| 崇左市| 临洮县| 霍林郭勒市| 本溪| 龙泉市| 新密市| 天门市| 大关县| 大同县| 南阳市| 资溪县| 宜昌市| 汉川市| 那坡县| 桐柏县| 商河县| 鄂州市| 九江市| 夏津县| 苏尼特右旗| 辽阳市| 新源县|