欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Golang字符串變位詞示例詳解

 更新時(shí)間:2017年10月09日 11:10:35   作者:小立立  
這篇文章主要給大家介紹了關(guān)于GoLang字符串變位詞的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

實(shí)現(xiàn)目標(biāo)

本文的目標(biāo)是寫出一個(gè)函數(shù) anagram(s, t) 去判斷兩個(gè)字符串是否是顛倒字母順序構(gòu)成的。下面話不多說了,來一起看看詳細(xì)的介紹吧。

GoLang 實(shí)現(xiàn)

func solution(s , t string)bool{
 if s == t {
 return true
 }
 length := len(s)
 if length != len(t) {
 return false
 }
 //' ' 32 --> ~ 126
 const MAX_ASCII int= 94
 const SPACE_INDEX rune = 32

 numbers := [MAX_ASCII]int{}
 sRune := []rune(s)
 tRune :=[]rune(t)

 for i := 0 ; i < length ; i++ {
 index := tRune[i] - SPACE_INDEX
 numbers[index]++

 index = sRune[i] - SPACE_INDEX
 numbers[index]--
 }


 for i := 0 ; i < MAX_ASCII / 2 ; i++{
 mergeSize := numbers[i]
 if mergeSize != 0 || mergeSize != numbers[MAX_ASCII - 1 - i]{
  return false
 }
 }
 return true
}

其中關(guān)鍵點(diǎn)1 :

定義保存最后判斷兩個(gè)字符串是否相同的 長度的取值:

根據(jù)ASCII 表可以知道:

第一個(gè)單字符 ' ' 的10 進(jìn)制值位32 , 最后一個(gè)單字符 '~' 10進(jìn)制值位 126 , 得到之間的差值為 94 ,

這里預(yù)測每個(gè)字符都被使用到了, 所以長度直接定義為 94了.

Java 實(shí)現(xiàn) 和上面類似:

public boolean anagram(String s, String t) {
 if (s == null || t == null || s.length() ==0 || s.length() != t.length()){
  return false;
 }
 if (s.equals(t))return true;

 final int MAX_ASCII = 94;
 final char SPACE_INDEX = ' ';

 int[] numbers = new int[MAX_ASCII];
 int length = s.length();

 char[] sCharArray = s.toCharArray();
 char[] tCharArray = t.toCharArray();

 for(int i = 0 ; i< length ; i++){
  int index = sCharArray[i] - SPACE_INDEX;
  numbers[index]++;

  index = tCharArray[i] - SPACE_INDEX;
  numbers[index]--;
 }

 for (int i =0 ; i < MAX_ASCII / 2 ; i++ ) {
  int mergeSize = numbers[i];
  if ( mergeSize != 0 || mergeSize != numbers[MAX_ASCII - 1 - i]){
  return false;
  }
 }
 return true;
 }

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 詳解Golang的GC三色標(biāo)記法

    詳解Golang的GC三色標(biāo)記法

    這篇文章主要為大家介紹了Golang的GC三色標(biāo)記法,文中有詳細(xì)的實(shí)現(xiàn)過程供大家參考,對大家的學(xué)習(xí)或工作有一定幫助,感興趣的可以跟著小編一來看看
    2023-05-05
  • 基于gin的golang web開發(fā):路由示例詳解

    基于gin的golang web開發(fā):路由示例詳解

    這篇文章主要介紹了基于gin的golang web開發(fā):路由示例詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 10個(gè)現(xiàn)代網(wǎng)站開發(fā)必備的Go軟件包工具盤點(diǎn)

    10個(gè)現(xiàn)代網(wǎng)站開發(fā)必備的Go軟件包工具盤點(diǎn)

    這篇文章主要為大家介紹了10個(gè)現(xiàn)代網(wǎng)站開發(fā)必備的Go軟件包,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • go?doudou開發(fā)單體RESTful服務(wù)快速上手教程

    go?doudou開發(fā)單體RESTful服務(wù)快速上手教程

    這篇文章主要為大家介紹了go?doudou開發(fā)單體RESTful服務(wù)快速上手教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Go?結(jié)構(gòu)體序列化的實(shí)現(xiàn)

    Go?結(jié)構(gòu)體序列化的實(shí)現(xiàn)

    本文主要介紹了Go?結(jié)構(gòu)體序列化的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 通過案例詳細(xì)聊聊Go語言的變量與常量

    通過案例詳細(xì)聊聊Go語言的變量與常量

    在任何一門現(xiàn)代的高級語言中,變量和常量都是它非?;A(chǔ)的程序結(jié)構(gòu)的組成部分,下面這篇文章主要給大家介紹了關(guān)于如何通過案例詳細(xì)聊聊Go語言的變量與常量的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 利用Go語言追加內(nèi)容到文件末尾

    利用Go語言追加內(nèi)容到文件末尾

    關(guān)于Go語言讀寫文件,網(wǎng)上很多教程了,但是今天有個(gè)需求,想要把內(nèi)容追加寫到文件末尾,在網(wǎng)上找了很久才找到答案,現(xiàn)在分享給大家,有需要的可以參考借鑒。
    2016-09-09
  • Go語言實(shí)戰(zhàn)之詳細(xì)掌握正則表達(dá)式的應(yīng)用與技巧

    Go語言實(shí)戰(zhàn)之詳細(xì)掌握正則表達(dá)式的應(yīng)用與技巧

    正則表達(dá)式是一種從左到右與主題字符串匹配的模式,正則表達(dá)式用于替換字符串中的文本,驗(yàn)證表單,基于模式匹配從字符串中提取子字符串等等,這篇文章主要給大家介紹了關(guān)于Go語言實(shí)戰(zhàn)之詳細(xì)掌握正則表達(dá)式的應(yīng)用與技巧,需要的朋友可以參考下
    2023-12-12
  • Go語言為什么很少使用數(shù)組原理解析

    Go語言為什么很少使用數(shù)組原理解析

    這篇文章主要為大家介紹了Go語言為什么很少使用數(shù)組原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • golang import自定義包方式

    golang import自定義包方式

    這篇文章主要介紹了golang import自定義包方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論