【每日一题】字符串筛选 (去除所有相同的字符)

1、题目描述

给定一个长度为n字符串, 需要去除所有之前曾经出现过的字符,只保留第一次出现的字符

2、思路:

(1) 首先需要定义两个数组,分别为“输入的字符串数组”old[ ] 以及 “输出的字符串数组” new[ ]。

(2) 取old数组中的第一个字符去和new数组中的每一个字符串相比较是否相同,若出现相同则取old数组的下一个字符再次与new中每一个字符相比较,若都不相同则存入new的数组中。

(3) 最后输出数组new。

3、代码展示

#include<stdio.h>
 void killsame(char *o, char *n)
{
	int i=0, j, k=0;
	int label;
	
	while(o[i] != '\0')
	{
		label = 1;
		for(j=0; j<i; j++)
		{
			if (o[i] == n[j])
				label = 0;  //一旦相同标志位置0
		}
		if(label)  // 不相等
			n[k++]=o[i];
		i++;
	}	
	n[k]='\0';  //结尾给\0
	puts(n);  //输出
}
int main(void)
{
	printf("Please input a string you want:\n");
	char old[126]; 
	char new[126];
	scanf("%s",old);
	killsame(old, new);//去重
 return 0;
}

import pandas as pd # 读取数据(假设第二行是表头) df = pd.read_csv("合并表.csv", header=1, low_memory=False) # 列名标准化 ---------------------------------------------------------- df.columns = df.columns.str.strip() df = df.rename(columns={ "日期": "交易日期", "代码": "股票代码", "名称": "股票名称", "成交额": "成交额", "成交金额": "成交额", "成交额()": "成交额" }) # 数据清洗 ---------------------------------------------------------- # 1. 去除日期前后空格并标准化格式 df["交易日期"] = pd.to_datetime(df["交易日期"]).dt.strftime("%Y-%m-%d") # 2. 强制转换成交额为数值类型(处理所有非数字字符) df["成交额"] = ( df["成交额"].astype(str) .str.replace(r"[^\d.]", "", regex=True) # 移除非数字字符 .replace("", "0") # 处理空字符串 .astype(float) ) # 3. 删除无效数据 df = df.dropna(subset=["交易日期", "股票代码", "成交额"]) # 核心逻辑 ---------------------------------------------------------- # 步骤1:确保每个股票在每个交易日只有一条记录(取最高成交额) df_daily_per_stock = ( df.groupby(["股票代码", "交易日期"], as_index=False) .agg({"成交额": "max"}) .merge(df, on=["股票代码", "交易日期", "成交额"], how="left") ) # 步骤2:找出每个交易日所有股票中的最高成交额记录 result = ( df_daily_per_stock .sort_values("成交额", ascending=False) .drop_duplicates("交易日期", keep="first") .sort_values("交易日期") ) # 结果验证 ---------------------------------------------------------- # 检查是否有重复日期 if result["交易日期"].duplicated().any(): print("⚠️ 警告:存在重复日期!请检查数据!重复记录:") print(result[result["交易日期"].duplicated(keep=False)]) else: print("✅ 验证通过:每个交易日只有一条记录") # 输出结果 ---------------------------------------------------------- result[["交易日期", "股票代码", "股票名称", "成交额"]].to_csv( "每日最高成交额股票_100%去重版.csv", index=False, encoding="utf-8-sig" ) print("\n示例输出:") print(result.head())我的目的是找到相同的交易日期,不同的股票代码,不管是两个不同还是三个不同,我要这些股票代码里交易额最高的那个,并保存到新文件,帮我优化这段代码
最新发布
04-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值