To and Fro(字符串规律)

Mo和Larry设计了一种独特的加密方式,通过设定列数并填充额外的随机字母形成矩形矩阵来加密消息。接收方Larry需将加密后的行按照交替左右的方式还原成原始消息。本文提供了解码算法并附上示例输入输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

To and Fro

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 13   Accepted Submission(s) : 9
Font: Times New Roman | Verdana | Georgia
Font Size: ← →

Problem Description

Mo and Larry have devised a way of encrypting messages. They first decide secretly on the number of columns and write the message (letters only) down the columns, padding with extra random letters so as to make a rectangular array of letters. For example, if the message is “There’s no place like home on a snowy night” and there are five columns, Mo would write down

t o i o y
h p k n n
e l e a i
r a h s g
e c o n h
s e m o t
n l e w x


Note that Mo includes only letters and writes them all in lower case. In this example, Mo used the character ‘x’ to pad the message out to make a rectangle, although he could have used any letter.

Mo then sends the message to Larry by writing the letters in each row, alternating left-to-right and right-to-left. So, the above would be encrypted as

toioynnkpheleaigshareconhtomesnlewx

Your job is to recover for Larry the original message (along with any extra padding letters) from the encrypted one.

Input

There will be multiple input sets. Input for each set will consist of two lines. The first line will contain an integer in the range 2. . . 20 indicating the number of columns used. The next line is a string of up to 200 lower case letters. The last input set is followed by a line containing a single 0, indicating end of input.

Output

Each input set should generate one line of output, giving the original plaintext message, with no spaces.

Sample Input

5
toioynnkpheleaigshareconhtomesnlewx
3
ttyohhieneesiaabss
0

Sample Output

theresnoplacelikehomeonasnowynightx
thisistheeasyoneab


其实可以发现一个规律,创建一个二维数组,奇数行时从左到右赋值,偶数行时从右到左
ac代码:
#include<stdio.h>
#include<string.h>
int main()
{
	char s[205];
	char s1[20][20];
	int h,j,i;
	int n;
	while(scanf("%d",&n)!=EOF&&n)
	{
		h=1;j=1;
		scanf("%s",s);
		int len=strlen(s);
		for(i=0;i<len;i++)
		{
			if(h%2==1)//奇数行 
			{
				if(j<=n)
			    s1[h][j++]=s[i];
			    else
			    {
			    	i--;h++;j--;
			    }
			}
			else//偶数行 
			{
				if(j>=1)
				s1[h][j--]=s[i];
				else
				{
					i--;h++;j++;
				}
			}
		}
		for(j=1;j<=n;j++)
		for(i=1;i<=h;i++)
		{
			printf("%c",s1[i][j]);
		}
		printf("\n");
	}
	return 0;
}

 
<think>嗯,用户问的是VMware打开OVF文件显示“Failed to read from”的问题。我需要先回忆一下这个错误的常见原因,然后一步步帮用户排查。首先,OVF文件本身可能损坏或者下载不完整,这应该是首要考虑的因素。用户可能从网上下载了OVF模板,但下载过程中断,导致文件不完整,这时候需要重新下载或者验证校验和。 然后是VMware版本的问题。旧版本的VMWare可能不支持新版本的OVF特性,或者有兼容性问题。用户可能使用的是比较老的VMware Workstation或者ESXi,这时候建议他们升级到最新版本,或者查看官方文档确认支持的OVF版本。 接下来是路径问题。OVF文件路径如果包含中文、特殊字符或者空格,VMware可能无法正确读取。特别是中文用户,可能在保存文件时用了中文目录名,这时候需要提醒用户将文件移动到纯英文路径下,并确保文件名没有特殊字符。 另外,权限问题也不能忽视。尤其是Linux系统下,如果用户没有足够的权限访问OVF文件或者所在目录,会导致读取失败。这时候需要建议用户检查文件权限,必要时使用chmod或者以管理员身份运行VMware。 还有可能是OVF文件关联的其他文件缺失,比如MF或VMDK文件。OVF通常和这些文件一起打包,如果用户解压时漏掉了,或者这些文件损坏,就会报错。需要提醒用户确保所有相关文件都在同一目录,并且没有被修改。 最后,如果上述步骤都无效,可能需要手动导入或者使用命令行工具ovftool。有时候图形界面有问题,用命令行工具可能更详细地看到错误信息,帮助进一步诊断。 总结一下,我应该分步骤告诉用户可能的解决方法,从检查文件完整性开始,然后逐步排除版本、路径、权限等问题,最后提供替代方案。确保用户能一步步操作,并且语言要简洁明了,避免技术术语太复杂,让不同水平的用户都能理解。</think>在VMware中打开OVF文件时出现"Failed to read from"错误,可能由以下原因导致。请按以下步骤排查: 1. **验证OVF文件完整性** - 检查文件是否完整下载,建议对比MD5/SHA1校验值 - 确保OVF关联的`.vmdk`磁盘文件和`.mf`清单文件存在于同一目录 - 尝试重新解压/重新下载OVF文件包 2. **检查文件路径规范** - 确保路径不包含中文字符、空格或特殊符号(如:`!@#$%^&*`) - 建议将文件放置在纯英文路径下,例如:`D:\VM\ubuntu` 3. **版本兼容性处理** ```bash # 检查当前VMware版本 vmware -v ``` - 升级VMware到最新版本(Workstation Pro建议16.2+) - 若使用ESXi,尝试通过vSphere Client导入 4. **权限问题排查** - Windows系统:以管理员身份运行VMware - Linux系统:使用`chmod +x`赋予执行权限 - 检查文件所有权:`ls -l *.ovf` 5. **手动导入尝试** - 通过菜单选择:`File > Deploy OVF Template...` - 使用命令行工具(ovftool): ```bash ovftool --X:logToConsole path/to/file.ovf output_directory ``` 6. **特殊字符处理** - 对包含空格的路径使用转义符: ```bash ovftool "/path/with\ space/file.ovf" ``` **常见解决方案优先级排序**: 1. 文件路径改为全英文且无特殊字符(解决率约60%) 2. 升级VMware版本(解决率约25%) 3. 使用ovftool命令行导入(解决率约10%) 4. 检查防火墙/杀毒软件拦截(解决率约5%) 若仍无法解决,建议检查VMware日志文件: - Windows日志路径:`%APPDATA%\VMware\vmware.log` - Linux日志路径:`/var/log/vmware/vmware.log` 注:涉及数学表达式的硬件资源配置验证公式: $$ \text{主机剩余资源} \geq \sum_{i=1}^{n} (vCPU_i + RAM_i + DISK_i) $$ 需确保物理主机资源满足OVF模板要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值