Skip to content

Instantly share code, notes, and snippets.

View icameling's full-sized avatar
🎯
Focusing

icameling

🎯
Focusing
View GitHub Profile
@icameling
icameling / 4sum.cpp
Created July 19, 2022 02:55
#哈希表 #四数之和
class Solution {
public:
inline void forward(vector<int>& nums, int k, int& j) {
while (j < k && nums[j] == nums[j+1]) {
j++;
}
}
inline void backward(vector<int>& nums, int j, int& k) {
@icameling
icameling / reverse-string.cpp
Created July 19, 2022 03:39
#字符串 #反转字符串
class Solution {
public:
void reverseString(vector<char>& s) {
int left = 0, right = s.size() - 1;
while (left < right) {
char tmp = s[left];
s[left] = s[right];
s[right] = tmp;
left++;
right--;
@icameling
icameling / reverse-string-ii.cpp
Created July 19, 2022 04:00
#字符串 #反转字符串 II
class Solution {
public:
string reverseStr(string s, int k) {
int n = 0;
for (int i = 0; i < s.size(); i += (2*k)) {
if (i + k <= s.size())
reverse(s.begin() + i, s.begin() + i + k);
else
reverse(s.begin() + i, s.end());
}
@icameling
icameling / ti-huan-kong-ge-lcof.cpp
Created July 19, 2022 04:15
#字符串 #替换空格
class Solution {
public:
string replaceSpace(string s) {
int space_cnt = count(s.begin(), s.end(), ' ');
if (space_cnt < 0) return s;
int lft = s.size() - 1;
int rht = s.size() + space_cnt * 2 - 1;
s.resize(s.size() + space_cnt * 2);
for (; lft >= 0; lft--) {
@icameling
icameling / reverse-words-in-a-string.cpp
Created July 19, 2022 07:36
#字符串 #颠倒字符串中的单词
class Solution {
public:
string reverseWords(string s) {
reverse(s.begin(), s.end());
int str_len = 0;
int l = -1;
for (int i = 0; i < s.size(); ++i) {
if (l >= 0 && s[i] == ' ') {
reverse(s.begin() + l, s.begin() + i);
for (int k = 0; k < i - l; ++k) {
@icameling
icameling / zuo-xuan-zhuan-zi-fu-chuan-lcof.cpp
Created July 19, 2022 07:41
#字符串 #左旋转字符串
class Solution {
public:
string reverseLeftWords(string s, int n) {
reverse(s.begin(), s.end());
reverse(s.begin(), s.begin() + s.size() - n);
reverse(s.begin() + s.size() - n, s.end());
return s;
}
};
@icameling
icameling / implement-strstr.cpp
Last active July 19, 2022 11:26
#字符串 #实现strStr
class Solution {
public:
int strStr(string haystack, string needle) {
if (haystack.size() < needle.size())
return -1;
if (needle.size() == 0)
return 0;
for (int i = 0; i < haystack.size() - needle.size() + 1; ++i) {
if (haystack[i] == needle[0]) {
int k = 0;
@icameling
icameling / repeated-substring-pattern.cpp
Created July 19, 2022 12:08
#字符串 #重复的子字符串
class Solution {
public:
void get_pmt(const string& s, int*pmt) {
pmt[0] = 0;
int j = 0;
for (int i = 1; i < s.size(); ++i) {
while (j > 0 && s[i] != s[j])
j = pmt[j - 1];
if (s[i] == s[j])
@icameling
icameling / implement-queue-using-stacks.cpp
Created July 19, 2022 12:40
#栈与队列 #用栈实现队列
class MyQueue {
public:
MyQueue() {
}
void push(int x) {
my_deque_.push_back(x);
}
@icameling
icameling / valid-parentheses.cpp
Created July 19, 2022 13:26
#栈与队列 #有效的括号
class Solution {
public:
bool isValid(string s) {
stack<int> check;
map<char, char> bracket_map;
bracket_map['('] = ')';
bracket_map['['] = ']';
bracket_map['{'] = '}';
for (int i = 0; i < s.size(); ++i) {
if (s[i] == '(' || s[i] == '[' || s[i] == '{')