[算法 笔记]2014年 去哪儿网 开发笔试题
2013-09-11 09:02
369 查看
1. 将绝对路径转换成相对路径。例如, input: /home/news/../tmp/game/../; ouptut: /home/tmp/
思路:利用栈的思想。每次遇到".."时,将退栈至上一个'/'位置。
View Code
[b] 欢迎大家指导!![/b]
思路:利用栈的思想。每次遇到".."时,将退栈至上一个'/'位置。
#include <stdio.h> #include <stdlib.h> #include <time.h> void gobang_problem( int colors[][10], int size_i ) { int i, j, k, p, colors_cnt = 0; /**< check argument. */ if ( NULL == colors || size_i <= 0 ) { fprintf( stderr, "gobang_problem: invalid argument.\n" ); return; } /**< compute */ for ( i = 0; i < size_i; ++i ) { for ( j = 0; j < size_i; ++j ) { /**< 纵向 */ for ( colors_cnt = 0, k = j; k < size_i; ++k ) { if ( colors[i][j] == colors[i][k] ) { colors_cnt++; /**< if found, output. */ if ( colors_cnt == 5 ) { while ( k >= j ) { printf( " %d %d,", i, k-- ); } return; } } else { break; /**< if not same, do not need to continue. */ } } /**< 横向 */ for ( colors_cnt = 0, k = i; k < size_i; ++k ) { if ( colors[i][j] == colors[k][j] ) { colors_cnt++; if ( colors_cnt == 5 ) { while ( k >= i ) { printf( " %d %d,", k--, j ); } return; } } else { break; } } /**< 向下斜向 */ for ( colors_cnt = 0, k = i, p = j; k < size_i && p < size_i; ++k, ++p ) { if ( colors[i][j] == colors[k][p] ) { colors_cnt++; if ( colors_cnt == 5 ) { while ( k >= i && p >= j ) { printf( " %d %d,", k--, p-- ); } return; } } // end if else { break; } }// end for } // end for } // end for /**< 向上斜向 */ for ( i = size_i - 1; i >= 0; --i ) { for ( j = 0; j < size_i; ++j ) { for ( colors_cnt = 0, k = i, p = j; k >= 0 && p < size_i; --k, ++p ) { if ( colors[i][j] == colors[k][p] ) { colors_cnt++; if ( colors_cnt == 5 ) { while ( k <= i && p >= j ) { printf( " %d %d,", k++, p-- ); } return; } } else { break; } } // end for } } } void generate_chessboard( int chessboard[][10], int size_i ) { int i, j; /**< check argument */ if ( NULL == chessboard || size_i <= 0 ) { fprintf( stderr, "generate_chessboard: invalid argument.\n" ); return; } /**< generating */ srand( (unsigned) time(0) ); for ( i = 0; i < size_i; ++i ) { for ( j = 0; j < size_i; ++j ) { chessboard[i][j] = rand() % 4; } } /**< output chessboard */ printf( "\nThis color in chessboard is \n" ); for ( i = 0; i < size_i; ++i ) { for ( j = 0; j < size_i; ++j ) { printf( " %d", chessboard[i][j] ); } printf( "\n" ); } } int main() { int chessboard[10][10]; int size_i = 10; generate_chessboard( chessboard, size_i ); printf( "\nFive colors in low:\n" ); gobang_problem( chessboard, size_i ); return 0; }
View Code
[b] 欢迎大家指导!![/b]
相关文章推荐
- [算法 笔记]2014年去哪儿网 开发笔试(续)第一题BUG修正
- 条形码完整度检测算法开发笔记01(08.31)
- 【Hibernate框架开发之九】Hibernate 性能优化笔记!(遍历、一级/二级/查询/缓存、乐观悲观锁等优化算法)
- 前端开发面试笔试学习--算法01--数组求和/数组去重
- 2014年阿里巴巴笔试题目(28题):最小三元数组距离最优算法
- 2014年腾讯暑假实习软件开发笔试题汇总
- 华为2014年四道笔试算法题
- 【Hibernate框架开发之九】Hibernate 性能优化笔记!(遍历、一级/二级/查询/缓存、乐观悲观锁等优化算法)
- 2014年去哪儿网笔试题--一个10*10的矩阵(可以理解为棋盘),随时生成一组数据填入矩阵,任何一个位置的数字除4进行计算,按余数着色...
- leetcode笔记:Gray Code(2016腾讯软件开发笔试题)
- opencv开发笔记(十五):特征检测十大方法之SURF算法
- 【Visual C++】游戏开发笔记十七 游戏基础算法(一) 游戏随机系统初步
- 2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小
- Java 笔试:算法笔记
- 2014年腾讯暑假实习软件开发笔试题汇总
- 【Visual C++】游戏开发笔记十七 游戏基础算法(一) 游戏随机系统初步
- 学习笔记:百度Web开发工程师笔试题+新浪PHP工程师笔试题
- 2014年百度研发笔试算法题1解法
- 2014年去哪儿网校园招聘笔试题
- 2014年去哪儿网笔试题--给定一个整型数组,对这个整型数组排序,使得按序拼接数组各元素得到的值最小。