暑期算法打卡day31

学习算法的小菜鸡 每日一题总教官 2022-07-30 23:29:11

完结撒花
1.

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    string inv(string ch) {
        reverse(ch.begin(),ch.end());
        return ch;
    }
    bool isPalindrome(ListNode* head) {
        string ch;
        while(head!=nullptr) {
            ch+=head->val;
            head=head->next;
        }
        return ch==inv(ch);
    }
};

2.

class Solution {
public:
    vector<vector<string>>res;
    int n;
    vector<string>cnt;
    string inv(string ch) {
        reverse(ch.begin(),ch.end());
        return ch;
    }
    void dfs(string s,int v) {
        if(v>=n) {
            res.push_back(cnt);
            return;
        }
        for(int i=v;i<n;i++) {
            string as=s.substr(v,i-v+1);
            if(inv(as)==as) {
                cnt.push_back(as);
                dfs(s,i+1);
                cnt.pop_back();
            }
        }
    }
    vector<vector<string>> partition(string s) {
        n=s.size();
        dfs(s,0);
        return res;
    }
};

3.

class Solution {
public:
    int get(int n)
    {
        string a=to_string(n);
        string b=a;
        reverse(b.begin(),b.end());
        string c=a.substr(0,a.size()-1)+b;
        return stoi(c);
    }

    bool check(int n)
    {
        if(n<2) return false;
        for(int i=2;i<=n/i;i++)
        {
            if(n%i==0) return false;
        }
        return true;
    }

    int primePalindrome(int n) {
        if(n>7&&n<=11) return 11;
        for(int i=1;;i++)
        {
            int a=get(i);
            if(a>=n&&check(a)) return a;
        }
        return 0;
    }
};

4.

class Solution {
public:
    int Prime(int n){
        if(n<=2) return 0;
        int cnt=1;
        bool isPrime[5000010];
        memset(isPrime,true,sizeof(isPrime));
        isPrime[0]=isPrime[1]=false;
        for(int i=3;i<n;i+=2){
            if(isPrime[i]){
                cnt++;
                for(int j=2;j*i<=n;j++) isPrime[j*i]=false;
            } 
        }
        return cnt;
    }

    int countPrimes(int n) {
        return Prime(n);
    }
};
...全文
9 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,781

社区成员

发帖
与我相关
我的任务
社区描述
和众多高校算法内卷分子,一起学习和交流算法那。浓郁的算法交流氛围,拒绝躺平,有效内卷。加入我们,私信我拉你入核心内卷群。
算法数据结构leetcode 个人社区
社区管理员
  • 执 梗
  • Dream-Y.ocean
  • ღCauchyོꦿ࿐
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

 刷题!

试试用AI创作助手写篇文章吧