CCI_Q1.8

本文参考该作者文章当作编程笔记:

作者:Hawstein
出处:http://hawstein.com/posts/ctci-solutions-contents.html

一.

Q:假设你有一个isSubstring函数,可以检测一个字符串是否是另一个字符串的子串。 给出字符串s1和s2,只使用一次isSubstring就能判断s2是否是s1的旋转字符串, 请写出代码。旋转字符串:"waterbottle"是"erbottlewat"的旋转字符串。

思路:将字符串s1+s1,再判断s2是不是s1+s1的子串,如果是,s2就是s1的旋转字符串。eg:s1:abcd,  s2:dabc,  s1+s1:abcdabcd.

Talk is cheap,Show me code:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 #define N 5
 5 int isSubstring (char s1[],char s2[])
 6 {
 7     char *sub=strstr(s1,s2);
 8     if(sub==NULL)
 9         return 0;
10     return 1;
11 }
12 int isRotation(char s1[],char s2[])
13 {
14     strcat(s1,s1);
15     if(isSubstring(s1,s2)==1)
16         return 1;
17     return 0;
18 }
19 int main()
20 {
21     char s1[N+N]="abcd";
22     char s2[N]="dabc";
23     if(isRotation(s1,s2))
24         printf("yes");
25     else
26         printf("no");
27     return 0;
28 }

 

转载于:https://www.cnblogs.com/jhooon/p/3577681.html

``` {智能估值体系V8} DYNPETTM:=IF(FINANCE(33)>1.8e8 AND FINANCE(1)>8e7, CLOSE/MAX(FINANCE(33)/FINANCE(1),0.8),1000); PB_RATE:=IF(FINANCE(34)>0.5 AND CLOSE>3.5, CLOSE/(FINANCE(34)*0.78+REF(FINANCE(34),1)*0.22),1000); //优化权重系数 PEG_VAL:=IF(MAX(FINANCE(54)/REF(FINANCE(54),1)*100-100,0.8)>0, DYNPETTM/MAX(FINANCE(54)/REF(FINANCE(54),1)*100-100,0.8),1000); {分形波动率V12} VOL_REGIME:DMA(STD(CLOSE,144)/MA(CLOSE,144)*SQRT(144),21); VAR_PERIOD:=IF(VOL_REGIME<0.015,233, IF(VOL_REGIME<0.026,144, //优化波动阈值 IF(VOL_REGIME<0.046,89,55))); FAST_LEN:=BARSLAST(CROSS(VOL_REGIME,0.026))+21; //增加响应周期 SLOW_LEN:=IF(VOL_REGIME>0.12,FLOOR(VAR_PERIOD*1.382),CEILING(VAR_PERIOD*1.618)); //黄金比例优化 {行业轮动强度V5} HY_CLOSE:=HY_INDEXC; HY_RET:=(HY_CLOSE/REF(HY_CLOSE,1)-1)*100; INDUSTRY_RET:=EMA(HY_CLOSE/REF(HY_CLOSE,1),3); //修正计算方式 TRANS_MATRIX:=IF(BARSCOUNT(CLOSE)>60, SUM(IF(INDUSTRY_RET>REF(INDUSTRY_RET,1) AND REF(INDUSTRY_RET,1)>REF(INDUSTRY_RET,2),1,0),55)/ (SUM(IF(REF(INDUSTRY_RET,1)>REF(INDUSTRY_RET,2),1,0),55)+0.0001),0.5); {行业强度V6} HY_VOL:=HY_INDEXV; HY_STRENGTH:EMA(HY_RET,3)*SQRT(HY_VOL/MA(HY_VOL,21)); //标准化处理 SECTOR_STR:TRANS_MATRIX*HY_STRENGTH*VOL_REGIME; //加入波动率因子 SORTED_RANK:100*(SECTOR_STR - LLV(SECTOR_STR,144))/(HHV(SECTOR_STR,144)-LLV(SECTOR_STR,144)+0.0001); {市场情绪V18} MARKET_SENTI:EMA((ADVANCE-DECLINE)/(ADVANCE+DECLINE+0.0001),13)*0.35 + EMA(AMO/REF(AMO,3),13)*0.25 + EMA((VOL/CAPITAL-REF(VOL/CAPITAL,5))/REF(VOL/CAPITAL,5),21)*0.18 + EMA(FINANCE(19)/CAPITAL,8)*0.12 + 0.10*FINANCE(230)/REF(FINANCE(230),5) + (HHV(H,8)-LLV(L,8))/LLV(L,8)*0.18 + //优化波动系数 (CLOSE/COST(50)-1)*0.15; //修正成本函数 {动态估值V7} MONTH_FLAG:=MONTH!=REF(MONTH,1); Q_BASE:=0.65+0.35*(VOL_REGIME/0.15); Q_PARAM:IF(BARSLAST(MONTH_FLAG)=0,Q_BASE,REF(Q_BASE,BARSLAST(MONTH_FLAG))); THRESHOLD:=EMA(IF(Q_PARAM>0,MIN(Q_PARAM*VOL_REGIME/0.1,1.6),0.78),8); {背离检测V7} MACD_DIVERGE:=C>REF(HHV(C,34),1) AND MACD.DIF<REF(HHV(MACD.DIF,34),1) AND MACD.MACD>0 OR C<REF(LLV(C,34),1) AND MACD.DIF>REF(LLV(MACD.DIF,34),1) AND MACD.MACD<0; //增加MACD方向过滤 {资金监控V8} HKFLOW_RATE:=EMA((FINANCE(230)-REF(FINANCE(230,5)))/CAPITAL*100,5); MAIN_FUND:=EMA(FINANCE(230)/CAPITAL*100,3); //标准化处理 LHB_DATA:=IF(FINANCE(230)>0,EMA(FINANCE(230)/MAIN_FUND,5),0); {主升浪V6} FRACTAL_BREAK:=CLOSE>REF(HHV(H,21),1) AND VOL>MA(VOL,55)*1.618 AND CLOSE>MA(CLOSE,89) AND MA(CLOSE,5)>MA(CLOSE,21); //增加均线确认 {资金流入V7} CAPITAL_INFLOW:=SUM(AMO,13)/SUM(AMO,34)>0.88 AND SUM(IF(CLOSE>OPEN*1.015 AND CLOSE>MA(CLOSE,21),VOL,0),13)/SUM(VOL,13)>0.78 AND (AMO-REF(AMO,13))/REF(AMO,13)>0.42 AND EVERY(VOL>REF(VOL,1)*1.12,8) AND REF(MAIN_FUND,8) > MAIN_FUND*1.25 AND FINANCE(230)>REF(FINANCE(230,5)) AND (MAIN_FUND-REF(MAIN_FUND,8))>0.18 AND LHB_DATA>0.065 AND FRACTAL_BREAK AND MARKET_SENTI>EMA(MARKET_SENTI,5)*1.15; {终极选股条件} SELECT:FILTER(CAPITAL_INFLOW AND MACD_DIVERGE AND SORTED_RANK>85 AND PEG_VAL<1.15 AND FINANCE(33)/REF(FINANCE(33),4)>1.2 AND //净利润增长过滤 FINANCE(19)/REF(FINANCE(19),4)>1.15, //ROE增长过滤 21); //优化过滤周期```你的身份是高级编程技术专家,精通各类编程语言,能对编程过程中的各类问题进行分析和解答。我的问题是【我编辑通达信选股代码,你如何深度理解此代码能否选到资金持续流入,股票市场情绪启动,盘中异动启动主升浪的股票,及日线盘中预警选股和盘后选股。用2018-2024年全A股周期回测验证此代码选股逻辑的准确性和胜率,评估月胜率达到多少?评估有效信号准确率达到多少?同时此代码还有什么可提升的空间,提出可行性的优化建议和方案,并帮我优化提升选股逻辑和参数计算关系和信号触发条件。修正后要求选股胜率达到月胜率提高至75%以上,有效信号准确率95%以上,选到资金持续流入,股票市场情绪启动,盘中异动启动主升浪的股票,及日线盘中预警选股和盘后选股。请帮我检查并改正错误点补全正确代码,原有选股逻辑完整保留。替换为通达信支持的函数,生成优化后完整代码。
04-01
资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值