說明:本題中,我們將空字串定義為有效的回文串。
解題:根據題目需求首先過濾掉非字母和數字的字元,緊接著通過雙指標首尾遍歷字串,判斷是否回文即可。
只需五行**即可。
class solution
};
設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。
解題:
這道題還比較有意思,需要我們設計乙個最小棧,能夠滿足o(1)時間複雜度返回棧中最小元素。因此我們採用輔助棧的方法,來幫助我們獲取資料棧中的最小元素,需要注意的事情有以下幾點:
總結來說:出棧時,最小值出棧才同步;入棧時,最小值入棧才同步。
下面給出具體**實現:
class minstack
void push(int x)
}void pop()
int top()
int getmin()
};/**
* your minstack object will be instantiated and called as such:
* minstack* obj = new minstack();
* obj->push(x);
* obj->pop();
* int param_3 = obj->top();
* int param_4 = obj->getmin();
*/
給定乙個已按照公升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。
函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。
說明:
解題:
由於題目當中說明給出的陣列為有序陣列,且陣列當中無相同元素。那麼我們可以利用到這一點,採用收尾雙指標的方式,來找到對應的元素組合。
class solution ;
int left = 0;
int right = numbers.size()- 1;
while(left < right);}
}return {};
}};
給定乙個正整數,返回它在 excel 表中相對應的列名稱。
例如:1a2
b3c...
...26z27
aa28
ab...
...解題:
其實這道題本質是將十進位制數轉化為26進製數,需要我們注意的是,此時的a-z對應的不是0-25,而是1-26,因此在處理邊界條件的時候需要注意一下:
class solution
ans = char('a' + flag -1) + ans;
n = (n - flag) / 26;
}return ans;
}};
給定乙個整數 n,返回 n! 結果尾數中零的數量。(時間複雜度o(logn))
解題:
即返回階乘因子當中包含5的個數(這道題記住就好了):
class solution
return count;
}};
日常 力扣刷題4
尋找兩個正序陣列中的中位數 給定兩個大小分別為 m 和 n 的正序 從小到大 陣列 nums1 和 nums2。請你找出並返回這兩個正序陣列的 中位數 示例 1 輸入 nums1 1,3 nums2 2 輸出 2.00000 解釋 合併陣列 1,2,3 中位數 2 設計乙個時間複雜度為 o log ...
力扣 演算法練習 Python
1.兩數之和 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums ...
python可以做力扣的題嗎 力扣題目練習一
10.正規表示式匹配 給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 和 的正規表示式匹配。匹配任意單個字元 匹配零個或多個前面的那乙個元素 所謂匹配,是要涵蓋 整個 字串 s的,而不是部分字串。說明 s 可能為空,且只包含從 a z 的小寫字母。p 可能為空,且只包含從 a z 的小寫字...