c*2
2 楼
哪里违反规定了?
s*a
3 楼
A-Z, AA-AZ - ZZ : total 27*26 possibility, so 每个位上-进位不一样
第一个是26进制,往后都是27进制
第一个是26进制,往后都是27进制
h*n
4 楼
got it,多谢楼上的回答
h*n
5 楼
纠正一下,貌似每个位都是26进制
h*n
6 楼
share一下我的代码,欢迎指正:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication4
{
class ExcelIndexConversion
{
static int CharToInt(char c)
{
if (c < 'A' || c > 'Z')
return -1;
return (int)(c - 'A' + 1);
}
static char IntToChar(int digit)
{
if (digit < 1 || digit > 26)
return '#';
return (char)(digit + 'A' -1);
}
static int IndexToNum(String index)
{
int res = 0;
int digit = -1;
for (int i = 0; i < index.Length; i++)
{
digit = CharToInt(index[i]);
if (digit < 0) return -1;
res = res * 26 + digit;
}
return res;
}
static string NumToIndex(int num)
{
StringBuilder tmpStr = new StringBuilder();
StringBuilder resStr = new StringBuilder();
int digit;
if (num < 1)
{
resStr.Append("#");
return resStr.ToString();
}
else if (num < 27)
{
//如果只有一位要进行特别处理。。。
return IntToChar(num).ToString();
};
do
{
digit = num % 26;
tmpStr.Append(IntToChar(digit));
num = num / 26;
}while(num != 0 );
String tmp = tmpStr.ToString();
//reverse the string
for (int i = tmp.Length - 1; i >= 0; i--)
{
resStr.Append(tmp[i]);
}
return resStr.ToString();
}
static void Main(string[] args)
{
String testIndex = "AABB";
String resString;
int res = IndexToNum(testIndex);
resString = NumToIndex(res);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication4
{
class ExcelIndexConversion
{
static int CharToInt(char c)
{
if (c < 'A' || c > 'Z')
return -1;
return (int)(c - 'A' + 1);
}
static char IntToChar(int digit)
{
if (digit < 1 || digit > 26)
return '#';
return (char)(digit + 'A' -1);
}
static int IndexToNum(String index)
{
int res = 0;
int digit = -1;
for (int i = 0; i < index.Length; i++)
{
digit = CharToInt(index[i]);
if (digit < 0) return -1;
res = res * 26 + digit;
}
return res;
}
static string NumToIndex(int num)
{
StringBuilder tmpStr = new StringBuilder();
StringBuilder resStr = new StringBuilder();
int digit;
if (num < 1)
{
resStr.Append("#");
return resStr.ToString();
}
else if (num < 27)
{
//如果只有一位要进行特别处理。。。
return IntToChar(num).ToString();
};
do
{
digit = num % 26;
tmpStr.Append(IntToChar(digit));
num = num / 26;
}while(num != 0 );
String tmp = tmpStr.ToString();
//reverse the string
for (int i = tmp.Length - 1; i >= 0; i--)
{
resStr.Append(tmp[i]);
}
return resStr.ToString();
}
static void Main(string[] args)
{
String testIndex = "AABB";
String resString;
int res = IndexToNum(testIndex);
resString = NumToIndex(res);
}
}
}
相关阅读
孩子处于发育期,脸上的青春都也开始渐渐冒出来son got hit by wooden block this morning--wait online我那个豁达的老妈有谁的娃经常睡梦中坐起来哭感觉被白人邻居歧视,我该怎么教育孩子儿童学画(2)好奇问一下家长 (转载)有前20名的大学亚裔男女比例的数据么?能带两岁的孩子看电影吗?板砖来砸我这个不肖的儿子吧--如何处理我自己父母兄弟的关系。美国各种族大家庭也有温暖的一面请问一下上K小朋友的课外课的安排是否可行?终于追完了不肖子的贴子有没有休斯顿的妈妈可以推荐一个medical center 附近的幼儿园吗儿童学画(3)7的孩子开始学中文,用哪套教材比较合适?开学头两天就火大,是我的期望值太高了吗?又来bso我家小娃的小能力了--很有主见还会teamworkpre-school 升班时怎样感谢老师[合集] pajama party 的姑娘们(话痨,慎入)