一、 將乙個字串進行反轉。將字串中指定部分進行反轉。比如將「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...