我是一名初学程序员,对Common Lisp非常感兴趣,但根本不了解它.我非常感谢能在Common Lisp中实现以下问题的人,所以我可以看到Common Lisp如何处理基本的东西,比如字符串处理,文件I/O等.
这是问题所在:
输入示例,从"problem.in"文件中读取:
3 5
XHXSS
XSHSX
XXHSS
Run Code Online (Sandbox Code Playgroud)
您将得到^ h通过W¯¯字符表.第一个数字是行数,第二个数字是列数.
对于每列字符,您应该执行以下操作:
从头到尾开始查看字符.
如果找到"X",则输出列的成本(默认情况下,成本为零),后跟空格字符,然后转到下一列(跳过当前列中的所有其他字符).
如果找到"S",则将成本增加1.
如果找到"H",则将成本增加3.
如果列中没有"X",则输出"N"后跟空格字符.
输出示例,写入"problem.out"文件:
0 4 0 N 1
Run Code Online (Sandbox Code Playgroud)
这是我在C++中的实现:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(void)
{
ifstream input;
input.open("problem.in");
ofstream output("problem.out");
int h, w;
input >> h >> w;
string * str = new string[h];
for(int i = 0; i < h; i++) input >> str[i];
for(int i = 0; i < …Run Code Online (Sandbox Code Playgroud) common-lisp ×1