程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> (數據結構整理)NJUPT1054

(數據結構整理)NJUPT1054

編輯:C++入門知識

這一篇博客以一些OJ上的題目為載體,整理一下數據結構。會陸續的更新。。。

我們都知道,數據結構的靈活應用有時能讓簡化一些題目的解答。

一、棧的應用

1、NJUPT OJ 1054(回文串的判斷)

回文串的判斷:將一個字符串的一半存入一個棧中,然後從棧頂開始判斷這個字符串是否是回文串

/*
 * NJUPTOJ_1054.cpp
 *
 *  Created on: 2014年5月22日
 *      Author: pc
 */

#include 
#include 

using namespace std;


const int maxn = 300;

void toLower(char arr[],int len){
	int i;
	for(i = 0 ; i < len ; ++i){
		if(!islower(arr[i])){
			arr[i] += 32;
		}
	}
}


int main(){
	char a[maxn];
	char s[maxn];

	while(gets(a)!=NULL){


		int len = strlen(a);
		toLower(a,len);

		int mid = len/2 - 1;

		int top = 0;
		int i;
		for(i = 0 ; i <= mid ; ++i){
			s[++top] = a[i];
		}


		int next;
		if(len%2 == 0){
			next = mid+1;
		}else{
			next = mid+2;
		}

		for(i = next ; i <= len-1 ; ++i){
			if(s[top] != a[i]){
				break;
			}

			--top;
		}

		if(top != 0){
			printf("Not Palindrome.\n");
		}else{
			printf("Bingle! Palindrome.\n");
		}
	}

	return 0;

}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved