Ver código fonte

分支2完成,提交完成的题目

2
linyongji 4 anos atrás
pai
commit
2cf6891599
8 arquivos alterados com 87 adições e 4 exclusões
  1. BIN
      .vs/Algorithm/v16/.suo
  2. +3
    -0
      code/code.vcxproj
  3. +9
    -0
      code/code.vcxproj.filters
  4. +36
    -0
      code/config/2_ExcelSheetColumnTiTle.ini
  5. +6
    -0
      code/include/2_ExcelSheetColumnTitle.h
  6. +18
    -0
      code/src/2_ExcelSheetColumnTitle.cpp
  7. +1
    -0
      test/pch.h
  8. +14
    -4
      test/test.cpp

BIN
.vs/Algorithm/v16/.suo Ver arquivo


+ 3
- 0
code/code.vcxproj Ver arquivo

@@ -140,13 +140,16 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="include\1_ContainsNearbyDuplicate.h" />
<ClInclude Include="include\2_ExcelSheetColumnTitle.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\1_ContainsNearbyDuplicate.cpp" />
<ClCompile Include="src\2_ExcelSheetColumnTitle.cpp" />
<ClCompile Include="src\main.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="config\1_ContainsNearbyDuplicate.ini" />
<None Include="config\2_ExcelSheetColumnTiTle.ini" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">


+ 9
- 0
code/code.vcxproj.filters Ver arquivo

@@ -18,6 +18,9 @@
<ClInclude Include="include\1_ContainsNearbyDuplicate.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="include\2_ExcelSheetColumnTitle.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\1_ContainsNearbyDuplicate.cpp">
@@ -26,10 +29,16 @@
<ClCompile Include="src\main.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="src\2_ExcelSheetColumnTitle.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="config\1_ContainsNearbyDuplicate.ini">
<Filter>资源文件</Filter>
</None>
<None Include="config\2_ExcelSheetColumnTiTle.ini">
<Filter>资源文件</Filter>
</None>
</ItemGroup>
</Project>

+ 36
- 0
code/config/2_ExcelSheetColumnTiTle.ini Ver arquivo

@@ -0,0 +1,36 @@
[Test1]
Na=1
nExpect=A
[Test2]
Na=2
nExpect=B
[Test3]
Na=26
nExpect=Z
[Test4]
Na=1
nExpect=A
[Test5]
Na=27
nExpect=AA
[Test6]
Na=52
nExpect=AZ
[Test7]
Na=53
nExpect=BA
[Test8]
Na=100
nExpect=CV
[Test9]
Na=
nExpect=
[Test10]
Na=5000
nExpect=GJH
[Test11]
Na=10000
nExpect=NTP
[Test12]
Na=2147483647
nExpect=FXSHRXW

+ 6
- 0
code/include/2_ExcelSheetColumnTitle.h Ver arquivo

@@ -0,0 +1,6 @@
#pragma once
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char* ExcelSheetColumnTitle(int n);

+ 18
- 0
code/src/2_ExcelSheetColumnTitle.cpp Ver arquivo

@@ -0,0 +1,18 @@
#include "../include/2_ExcelSheetColumnTitle.h"
//题目:给定一个整数,返回它在 Excel 表中相对应的列名称,如果在Excel表中找不到该列,则返回""。
//思路:1.对n取余,把得到的余数加'A'从后往前放到字符串中,n = n/26,循环操作直到n为0
// 2.字符串长度不足7则指针后移,去掉前面的空位
char* ExcelSheetColumnTitle(int n)
{ //int类型大于0的数为0~2147483647,可以用7个A~Z的字母表示,int不会超过26的7次方
char* ret = (char*)malloc(sizeof(char) * 8);//所以这里申请8字节的空间,一个字节存放\0标志
int i = 7; //用来访问字符串中的每个字符
ret[7] = '\0'; //给结尾赋上\0
while (n) { //当n等于0时结束
n -= 1; //给n减一,因为n后面是从字符'A'开始的相加的
ret[i-1] = n % 26 + 'A'; //从后往前赋值,从最后一个赋值到第一个
n /= 26;
i--; //给下一个字符赋值
}
return ret + i; //去掉前面的前导字符,如果前面没有字符则指针后移
free(ret);
}

+ 1
- 0
test/pch.h Ver arquivo

@@ -15,6 +15,7 @@


#include"../code/include/1_ContainsNearbyDuplicate.h"
#include"../code/include/2_ExcelSheetColumnTitle.h"


int CalcCount(int n, char(*str)[10], const char* FileName);


+ 14
- 4
test/test.cpp Ver arquivo

@@ -3,6 +3,9 @@

using namespace Microsoft::VisualStudio::CppUnitTestFramework;
#define FileName_1 "../code/config/1_ContainsNearbyDuplicate.ini"
#define FileName_2 "../code/config/2_ExcelSheetColumnTiTle.ini"


namespace test1
{
TEST_CLASS(UnitTest_1)
@@ -27,12 +30,19 @@ namespace test1
}
namespace test2
{
TEST_CLASS(test)
TEST_CLASS(UnitTest_1)
{
public:

TEST_METHOD(TestMethod1)
TEST_METHOD(TestMethode1)
{
char Section_Name[100][10] = { 0 };
int Section_Count = CalcCount(100, Section_Name, FileName_2);
CString Na, nExpect;
for (int i = 0; i < Section_Count; i++) {
GetPrivateProfileString(Section_Name[i], "Na", " ", Na.GetBuffer(20), 20, FileName_2);
GetPrivateProfileString(Section_Name[i], "nExpect", " ", nExpect.GetBuffer(100), 100, FileName_2);
char* nReal = ExcelSheetColumnTitle(_ttoi(Na));
Assert::AreEqual(nReal, nExpect);
}
}
};
}


Carregando…
Cancelar
Salvar