您的位置:首页 > 文旅 > 旅游 > 红尘资源网_网页qq登陆保护功能怎么关闭_谷歌竞价广告_百度灰色关键词代发

红尘资源网_网页qq登陆保护功能怎么关闭_谷歌竞价广告_百度灰色关键词代发

2025/4/16 6:12:20 来源:https://blog.csdn.net/weixin_65550131/article/details/147026834  浏览:    关键词:红尘资源网_网页qq登陆保护功能怎么关闭_谷歌竞价广告_百度灰色关键词代发
红尘资源网_网页qq登陆保护功能怎么关闭_谷歌竞价广告_百度灰色关键词代发

分析题意可以了解到本题要求在一串字符串中找到所有组合起来排序递增的字符串。我们可以默认所有字符在字符串中的上升序列是1,从第一个字符开始找,如果后面的字符大于前面的字符就说明这是一个上序列那么后面字符所在的数组加一,如果连接不上前面的(两个字符一模一样的)就置为0.

①使用数组存储每一位元素的上升序列值

②后面元素要么与前者构成上升序列,要么则重置为0

③以此循环字符串中每一个元素将所有元素的上升序列相加即可得到最终值

④输出结果

		String s="tocyjkdzcieoiodfpbgcncsrjbhmugdnojjddhllnofawllbhfiadgdcdjstemphmnjihecoapdjjrprrqnhgccevdarufmliqijgihhfgdcmxvicfauachlifhafpdccfseflcdgjncadfclvfmadvrnaaahahndsikzssoywakgnfjjaihtniptwoulxbaeqkqhfwl";int[] num=new int[s.length()];//每一个元素的上升子序列个数数组char[] c = s.toCharArray();//转为字符数组for (int i = 0; i < num.length; i++) {num[i]=1;//初值都为1}for (int i = 0; i < s.length(); i++) {//后面的元素下标for (int j = 0; j < i; j++) {//前面的元素下标if (c[i]>c[j]) {//上升序列num[i]+=num[j];}if (c[i]==c[j]) {//重置num[j]=0;}}}long sum=0;for (int i = 0; i < num.length; i++) {sum+=num[i];}System.out.println(sum);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com