String演算法題

2021-10-09 00:08:41 字數 1918 閱讀 5738

一、 將乙個字串進行反轉。將字串中指定部分進行反轉。比如將「abcdefg」反轉為」abfedcg」

// 將乙個字串進行反轉。將字串中指定部分進行反轉。比如將「abcdefg」反轉為」abfedcg」

/** * @param str 要反轉的字串

* @param startindex 開始反轉的下標

* @param endindex 結束反轉的下標

* @return

*/public string reverse

(string str,

int startindex,

int endindex)

return

newstring

(arr);}

@test

public

void

test()

//第二種方案 字串拼接

public string reverse2

(string str,

int startindex,

int endindex)

// 第三部分 加上尾部索引之後的 字元 endindex+1 5+1=6 擷取6之後的所有字串

str1 += str.

substring

(endindex +1)

;// abfedc + g

return str1;

//因為string是不可變的所以效率低 使用stringbuilder 或stringbuffer

}//第三種 使用stringbuilder 或stringbuffer 根據執行緒安全或不安全選擇

public string reverse3

(string str,

int startindex,

int endindex)

//新增剩餘字串

builder.

(str.

substring

(endindex+1)

);return builder.

tostring()

;}//反轉所有字元

public string reverse4

(string str)

return str1.

tostring()

;}

二、獲取乙個字串在另乙個字串**現的次數。判斷substr在mainstr**現的次數
// 判斷str2在str1**現的次數

public

intgetcount

(string mainstr, string substr)

// 改進:

while

((index = mainstr.

indexof

(substr, index))!=

-1)return count;

}else

}

三、模擬乙個trim方法,去除字串兩端的空格
public string mytrim

(string str)

while

(start < end && str.

charat

(end)

==' ')if

(str.

charat

(start)

==' '

)return str.

substring

(start, end +1)

;}return null;

}#### 四、獲取兩個字串中最大相同子串。比如:

str1 =

"abcwerthelloyuiodef「;str2 = "cvhellobnm"//10

的串比較。

String演算法題

1.將乙個字串部分進行反轉,比如 abcdefg 反轉為 abfedcg public static void main string args 方式一 轉化為char public static string reverse string str,int startindex,int endind...

兩道String演算法題賞析

今天leecode看到了道初級演算法題。感覺思維很精妙。特此記錄下來以供學習使用 242.有效的字母異位詞 字母異位詞就是兩個字串的字母相同,個數相同,順序可以不管。我的思維就是 使用map統計每乙個字母的個數,然後遍歷兩個map。進行對比。兩個map的巢狀遍歷,時間複雜度o n 空間複雜度是o n...

PAT演算法題大整數運算之string加減法實現

pat中常考的大整數運算一般是加減法,乘除法少有考察。演算法筆記 上用的結構體實現,這裡選用stl中的string容器實現,如下 注 題目中可能會給出兩個大整數的長度或者大小關係等條件,那麼又可以根據情況精簡 比如 1024.palindromic number 25 include include...