技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 算法 --> 倒置字符串中的单词

倒置字符串中的单词

浏览:2488次  出处信息

输入:一个字符串,单词用某个特定符号分割(比如空格)
输出:一个字符串,单词顺序和原串相反

看到倒置,一般的做法是用栈,要么自己建个数组、要么STL,或者递归用程序栈。

优雅的递归

void reverse_token() {
  char str[MAX] = {0};
  if (scanf("%[^#]", str) != EOF)  { //利用scanf的正则式特性
      getchar();
      reverse_token();
      printf("%s ", str);
  } 
}

STL list

void reverse_token() {
    char tmp[MAX];
    list<string> stack;
    while (cin.getline(tmp, MAX, '#')) stack.push_front(string(tmp));
    copy(stack.begin(), stack.end(), ostream_iterator<string>(cout," "));
}

如果是处理字符串, 而不是stdin, 可以改用sscanf()或者STL的范型算法find, 更标准的做法是strtok()。想到了javascript里的String().split(’x'),直接返回一个分割后的数组,相当的方便。

建议继续学习:

  1. PHP与递归Recursion    (阅读:8290)
  2. 关于使用STL的红黑树map还是hashmap的问题    (阅读:7984)
  3. 萃取(traits)编程技术的介绍和应用    (阅读:5078)
  4. 循环、迭代、遍历和递归    (阅读:4502)
  5. 一个简单的stl中string的split函数    (阅读:3276)
  6. 递归并不一定非得是“自己调用自己的function”    (阅读:3243)
  7. 小心递归次数限制    (阅读:3099)
  8. STL笔记之二叉查找树    (阅读:3115)
  9. 小趣闻:STL的三个版本    (阅读:2884)
  10. PHP正则之递归匹配    (阅读:2740)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:快速排序详细分析
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1