深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

来自重粒子的C#程序


March 25,2004
Palin.cs
--------------
using System;
using System.Collections;

struct Pld{
    public int level;
    public String str;
}

class Palin{
    public static int Main(string[] args){
        if (args.Length != 1){
            Console.WriteLine("Usage: one argument");
            return -1;
        }
        Queue queuePalin = new Queue();
        Pld currState;
        int i,j,len;
        String palindrome;

        currState.level = 0;
        currState.str = args[0];
        queuePalin.Enqueue(currState);

        while(queuePalin.Count > 0){
            currState = (Pld)queuePalin.Dequeue();
            palindrome = (String)currState.str;
            len = palindrome.Length;

            for(i = 0, j = len - 1;i < j && palindrome == palindrome[j];
                i++,j--);
            if( i < j ){
                currState.level++;
                currState.str = palindrome.Substring(i+1,j-i);
                queuePalin.Enqueue(currState);
                currState.str = palindrome.Substring(i,j-i);
                queuePalin.Enqueue(currState);
            }else{
                Console.WriteLine(currState.level);
                return 0;
            }
        }   
        Console.WriteLine("Error!");
        return -2;
    }
}
--------------
csc palin.cs
palin dAb3d
--------------
2
--------------
程序如果不好懂,请举手!

嗬嗬,C#的Frameworks居然提供了队列这种数据结构,真不错!!!
       
       
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved