目录
前言
class Solution {
public:
string reverseOnlyLetters(string s) {
int n = s.size();
int l = 0 , r = n-1;
while(l < r)
{
//按照题意,只是交换字母,其他的就直接跳过
while(!(s[l] <= 122 && s[l] >= 97 || s[l] >= 65 && s[l] <= 90) && l < r) l++;
while(!(s[r] <= 122 && s[r] >= 97 || s[r] >= 65 && s[r] <= 90) && l < r) r--;
char tmp = s[l];
s[l] = s[r];
s[r] = tmp;
l++,r--;
}
return s;
}
};
class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
int n = numbers.size();
vector<int> ans;
int l = 0, r = n-1;
while(l < r)
{
if(numbers[l]+ numbers[r] == target)
{
ans.push_back(l+1);
ans.push_back(r+1);
break;
}
//如果两个元素之和大于目标值,右指针减一下,从而减少整体值
if(numbers[l]+ numbers[r] > target) r--;
else l++;
}
return ans;
}
};
我电脑似乎出问题了蛮,其他网页acwing、洛谷、codeforces都能能打开,Leetcode打不开…
先浅放中午写的两个题,,待会下课回来写咱社区的题啦,后续补上这两个双指针😭