题目描述
对于一个链表 L: L0→L1→…→Ln-1→Ln,
将其翻转成 L0→Ln→L1→Ln-1→L2→Ln-2→…
输入是一串数字,请将其转换成单链表格式之后,再进行操作
输入描述:
一串数字,用逗号分隔
输出描述:
一串数字,用逗号分隔
示例1
输入
1,2,3,4,5
输出
1,5,2,4,3
备注:
数组长度不超过100000
处理逗号的位置上,运用vector储存,同样用getchar来判断界限。
#include<iostream> #include<vector> using namespace std; int main(){ int flag = 1; char ch; int num; vector<int> ans; while (flag){ scanf("%d",&num); ch = getchar(); if( ch != ',' ) flag = 0; ans.push_back(num); } int count = 0; for( int i = 0 ; i < ans.size()/2 + 1 ; i ++ ){ if( ans.size() == 1) printf( "%d",ans[0]); else if( ans.size() - count == 1 ) printf(",%d",ans[i]),count++;//只剩中间一个 else if( ans.size() - count == 0 ) break; else{ if( i == 0 ) printf("%d,%d",ans[0],ans[ans.size()-1]); else printf(",%d,%d",ans[i],ans[ans.size()-i-1]); count +=2; } } }
0 条评论