String_day01

这篇博客涵盖了多种算法问题的解决方案,包括LeetCode中的字符串操作,如计算括号操作后的变量值,找出句子中的最多单词数;还涉及了数字处理,如找到十-二进制数的最少数目;此外,还讨论了Excel表中某个范围内的单元格生成,以及括号的嵌套深度计算。通过递归和遍历等方法,展示了如何高效地解决这些编程挑战。
摘要由CSDN通过智能技术生成

LeetCode

String

2011. 执行操作后的变量值
class Solution {
public:
    int finalValueAfterOperations(vector<string>& operations) {
        int num = 0;
        for(string i : operations){
            if(i[1] == '+')
            num++;
            else
            num--;
        }
        return num;
    }
};
2114. 句子中的最多单词数
class Solution {
public:
    int mostWordsFound(vector<string>& sentences) {
        vector<int>v;
        for(string str : sentences){
            int count = 0;
            for(int i = 0; i < str.size(); i++){
                if(str[i] == ' '){
                    count++;
                }
            }
            v.push_back(count);
        }
        sort(v.begin(), v.end());
    return v.back() + 1;;
    }
};
1689. 十-二进制数的最少数目
class Solution 
{
public:
    int minPartitions(string n) 
    {
        return *max_element(n.begin(), n.end()) - '0';
    }
};
2194. Excel 表中某个范围内的单元格
class Solution {
public:
    vector<string> cellsInRange(string s) {
        vector<string> ans;
        for (char a = s[0]; a <= s[3]; a++) {
            for (char b = s[1]; b <= s[4]; b++) {
                string tmp = {a, b};
                ans.push_back(tmp);
            }
        }
        return ans;
    }
};
剑指 Offer II 085. 生成匹配的括号
class Solution {
public:
    vector<string> res;
    vector<string> generateParenthesis(int n) {
        backtrack(n,0,"");
        return res;
    }

    void backtrack(int left,int right,string path){
        if(!left&&!right){res.push_back(path);return;}
        if(left)backtrack(left-1,right+1,path+'(');
        if(right)backtrack(left,right-1,path+')');
    }
};

771. 宝石与石头
class Solution {
public:
    int numJewelsInStones(string jewels, string stones) {
        int count = 0;
        for(int i = 0; i < jewels.size(); i++){
            for(int j = 0; j < stones.size(); j++){
                if(jewels[i] == stones[j]){
                    count++;
                }
            }
        }
        return count;
    }
};
1614. 括号的最大嵌套深度
class Solution {
public:
    int maxDepth(string s) {
        int ans = 0, size = 0;
        for (char ch : s) {
            if (ch == '(') {
                ++size;
                ans = max(ans, size);
            } else if (ch == ')') {
                --size;
            }
        }
        return ans;
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
保留原本功能优化以下代码import pandas as pd import numpy as np import matplotlib.pyplot as plt # 1.读取并查看数据 bike_day = pd.read_csv("C:/Users/15020/Desktop/26.bike_day.csv") print(bike_day.head(5)) # 前5行 print(bike_day.tail(2)) #后2行 #2.处理数据并导出到文件 bike_day_user = bike_day[['instant','dteday','yr', 'casual', 'registered']].dropna() bike_day_user.to_csv('bike_day_user.txt', sep=' ',index=False, header=False) #3.读取数据并添加新列并导出到新文件 bike_day_user = pd.read_csv('bike_day_user.txt', sep=' ', header=None, names=['instant','dteday','yr', 'casual',"registered"]) bike_day_user['cnt'] = bike_day_user['casual'] + bike_day_user['registered'] bike_day_user.to_excel('bike_day_user_cnt.xlsx', index=False) #4.读取数据并进行统计 bike_day_user_cnt = pd.read_excel('bike_day_user_cnt.xlsx') print('cnt最大值:',bike_day_user_cnt['cnt'].max()) print('ent最小值:',bike_day_user_cnt['cnt'].min()) print('2011号cnt年平均值:',bike_day_user_cnt[bike_day_user_cnt['yr'] == 0]['cnt'].mean()) print('2012年cnt年平均值:',bike_day_user_cnt[bike_day_user_cnt['yr'] == 1]['cnt'].mean()) print('2011年月严始值:', bike_day_user_cnt[bike_day_user_cnt['yr'] == 0].groupby('mnth')['cnt'].mean()) print('2022年月平均值:', bike_day_user_cnt[bike_day_user_cnt['yr'] == 1].groupby('mnth')['cnt'].mean()) # 5.可视化并保存图像 fig, ax = plt.subplots() ax.barh(bike_day_user_cnt['mnth'], bike_day_user_cnt[bike_day_user_cnt['yr'] == 0].groupby('mnth')['cnt'].mean(), color='blue', label='2011') ax.barh(bike_day_user_cnt['mnth'], bike_day_user_cnt[bike_day_user_cnt['yr'] == 1].groupby('mnth')['cnt'].mean(), color='lightblue', label='2012') ax.set_yticks(np.arange(1,13)) ax.set_yticklabels(['Jan','Feb','Mar', 'Apr', 'May','Jun','Jul','Aug', 'sep', 'Oct','Nov','Dec']) ax.set_xlabel('Average number of shared bike users') ax.set_title('Monthly Average Number of Shared Bike Users in 2011-2012') ax.legend() fig.savefig('bike_day_user_cnt.png', dpi=300)
06-03
好的,我会保留原本功能并优化代码。以下是优化后的代码: ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt # 1.读取并查看数据 bike_day = pd.read_csv("C:/Users/15020/Desktop/26.bike_day.csv") print(bike_day.head()) print(bike_day.tail(2)) # 2.处理数据并导出到文件 bike_day_user = bike_day[['instant', 'dteday', 'yr', 'casual', 'registered']].dropna() bike_day_user.to_csv('bike_day_user.txt', sep=' ', index=False, header=False) # 3.读取数据并添加新列并导出到新文件 bike_day_user = pd.read_csv('bike_day_user.txt', sep=' ', header=None, names=['instant', 'dteday', 'yr', 'casual', 'registered']) bike_day_user['cnt'] = bike_day_user['casual'] + bike_day_user['registered'] bike_day_user.to_excel('bike_day_user_cnt.xlsx', index=False) # 4.读取数据并进行统计 bike_day_user_cnt = pd.read_excel('bike_day_user_cnt.xlsx') cnt_max = bike_day_user_cnt['cnt'].max() cnt_min = bike_day_user_cnt['cnt'].min() cnt_mean_2011 = bike_day_user_cnt[bike_day_user_cnt['yr'] == 0]['cnt'].mean() cnt_mean_2012 = bike_day_user_cnt[bike_day_user_cnt['yr'] == 1]['cnt'].mean() cnt_mean_mnth_2011 = bike_day_user_cnt[bike_day_user_cnt['yr'] == 0].groupby('mnth')['cnt'].mean() cnt_mean_mnth_2012 = bike_day_user_cnt[bike_day_user_cnt['yr'] == 1].groupby('mnth')['cnt'].mean() print(f'cnt最大值: {cnt_max}') print(f'cnt最小值: {cnt_min}') print(f'2011号cnt年平均值: {cnt_mean_2011}') print(f'2012年cnt年平均值: {cnt_mean_2012}') print(f'2011年月严始值: {cnt_mean_mnth_2011}') print(f'2012年月平均值: {cnt_mean_mnth_2012}') # 5.可视化并保存图像 fig, ax = plt.subplots() ax.barh(bike_day_user_cnt['mnth'], cnt_mean_mnth_2011, color='blue', label='2011') ax.barh(bike_day_user_cnt['mnth'], cnt_mean_mnth_2012, color='lightblue', label='2012') ax.set_yticks(np.arange(1, 13)) ax.set_yticklabels(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']) ax.set_xlabel('Average number of shared bike users') ax.set_title('Monthly Average Number of Shared Bike Users in 2011-2012') ax.legend() fig.savefig('bike_day_user_cnt.png', dpi=300) ``` 我做了以下几点优化: 1. 使用 f-string 格式化输出字符串,让代码更加简洁易读。 2. 将统计结果赋值给变量,方便后续使用。 3. 在可视化时,直接使用已经统计好的月份平均值,避免了重复计算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小熊猫写算法er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值