344.反轉字串
題目連結 :
Code :
class Solution {
public:
void reverseString(vector<char>& s) {
int length_s = s.size();
char char_Cache ;
int length_Half_s = ( length_s / 2 ) ; // 下 取 整
if(length_s % 2 != 0 )
{
}
else
{
}
for(int i = 0 ; i < length_Half_s ; i++ )
{
char_Cache = s[ (length_s - 1 ) - i ] ; // Logic
// Logic 表示 強 的 程式碼 佈置 ,/ 結構 佈置
s[(length_s - 1 ) - i ] = s[i] ;
s[i] = char_Cache ;
}
}
};
541. 反轉字串II
題目連結 :
Code :
class Solution {
public:
string reverseStr(string s, int k) {
// 預製 引數
int length_s_From_Count = 0 ;
int i_Work = 0 ;
while(s[i_Work] != '\0')
{
length_s_From_Count++ ;
i_Work ++ ;
}
int k_Multiply_2 = k * 2 ;
int k_Divide_2_Floor = k / 2 ;
int num_Batch_Process_Str_s = length_s_From_Count / k_Multiply_2 ;
int num_CharRemaining = length_s_From_Count % k_Multiply_2 ; // less than ( 2 * k )
char* array_Char_For_Cache ;
array_Char_For_Cache = new char[length_s_From_Count];
// 處理 Part
//cout <<"num_CharRemaining_Divide_2_Floor : " << num_CharRemaining<<endl;
for( int i_Batch = 0 , i_Work2 = 0 ; i_Batch < num_Batch_Process_Str_s ; i_Batch++ ) // i_Work2 = i_Work2 + k // i_Work2 處理 Part 調整 字串 時 的 工作 變數 Batch 首地址 的 構建 i_Batch “ Batch 下標 ”
{
i_Work2 = i_Batch * ( 2 * k) ;
int i_Work3 = (i_Batch + 1 ) * ( 2 * k ) - k - 1 ;
for(int index_SecondFloor = 0 ; index_SecondFloor < k_Divide_2_Floor ;index_SecondFloor ++ )
{
char char_Cache = s[i_Work3];
//字元陣列 處理
// 字元 陣列 的 迴圈 工作 的 後 半 部分 不要 忘了 進行 處理
// / 字串 處理 ? 好像 是 自動 Allocate 新 的 字串 ;
array_Char_For_Cache[i_Work3] = s[i_Work2] ;
array_Char_For_Cache[i_Work2] = s[i_Work3] ;
i_Work2++ ;
i_Work3-- ;
}
if(k % 2 != 0 )
{
array_Char_For_Cache[i_Work2] = s[i_Work2] ;
}
i_Work2 = (i_Batch + 1 ) * ( 2 * k ) - k ;
for(int i = 0 ; i < k ; i