字符串内子字符串的逆序算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串内子字符串的逆序算法相关的知识,希望对你有一定的参考价值。

  源于一道ACM的题目,要求将字符串中的子字符串逆序输出,最初的想法就是利用strtok按照空格进行分割字符,再实现以下单个字符串的逆序,再通过strcat进行字符串的拼接,感觉这个想法不错,利用库函数搞搞,但是不知道哪里出错,strcat出来的字符串输出的时候会出现多个换行,非常难受,感觉一个简单的问题,代码太多,所以睡觉的时候就在想,我应该考虑自己写一个算法来实现这个需求,刚好最近在看算法方面的书,那就尝试下吧。

   基本思想,从前往后扫描字符串,遇到空格停止,字符串第一个字符start位置,扫描到空格为end位置,将start——end-1中的字符串进行逆序,然后end位置填上空格,更新start = end + 1指向下一个字符串的起始字符,end更新到空格结束的位置,over!

核心代码如下:


 

 1 start = 0, end = 0;
 2 for(i = 0; i < len; i++)
 3 {
 4     end = i;
 5     if(src[end] ==   || src[end] == \n)
 6     {
 7         for(j = start; j < end; j++)
 8         {
 9             dest[k][j] = src[end - 1 - j + start];
10         }
11         if(src[end] ==  )
12         {
13             dest[k][j] =  ;
14         }
15         start = end + 1;
16     }
17 }

 

以上是关于字符串内子字符串的逆序算法的主要内容,如果未能解决你的问题,请参考以下文章

第三次过程性考核

算法训练 字符串逆序

片段(Java) | 机试题+算法思路+考点+代码解析 2023

记录4--一个有趣的逆序算法

算法竞赛入门经典_3.1_数组_逆序输出_开灯问题

算法字符串问题——翻转字符串