# 双指针(二)
## 练习补充
### 633.平方数之和
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。
链接:
对于平方求和,从两边开始考虑,左边从0开始,右边从c开始,两数平方相加。若大于c,右边的数减小;若小于c,左边数增加。
但对于平方操作,右边不一定需要从所求数开始,可以从根号c开始,减少判断次数。
代码:
```c++
class Solution {
public:
bool judgeSquareSum(int c) {
long long sqr = sqrt(c);
if(sqr*sqr==c) return true;
long long l=0,r=sqr,result = 0;
while(l<=r){
result = l*l+r*r;
if(result==c) return true;
else if(result
### 680. 验证回文字符串 Ⅱ
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
链接:
题目只需判断最多删除一个字符的问题,此时有两种情况:
1. 字符串本身是回文字符串