1061. Dating 解析

本文介绍了一种简单的字符匹配算法,该算法通过比较字符串中特定位置的字符来确定日期和时间的对应关系。通过逐步解析输入的四组字符串,分别识别出星期、小时和分钟的值,并最终以指定格式输出。

一开始把题目想复杂了。以为要匹配字符一样的比较。结果发现直接按顺序相同位置进行比较就好了。。。

#include <iostream>
#include <algorithm>
#include <cstring>
#include <climits>
#include <string>
#include <map>
#include <stack>
#include <queue>
#include <set>

using namespace std;

char day[7][4] ={"MON","TUE","WED","THU","FRI","SAT","SUN"};
string s1,s2,s3,s4;
bool isVis[256];
int d,h,m;

int main(){

	cin >> s1 >> s2 >> s3 >> s4;
	bool tag = false;
	int posi = 0 ,posj = 0;
	

	for(int i = 0; i < s1.size() && i < s2.size() && !tag ;i++){
		if(s1[i] >= 'A' && s1[i] <= 'G'){
			if(s1[i] == s2[i]){
				d = s1[i] - 'A';
				posi = i;
				tag = true;
			}
		}
	}

	tag =false;
	for(int i = ++posi; i < s1.size() && i < s2.size()  && !tag ;i++){
		if((s1[i] >= 'A' && s1[i] <= 'N')|| (s1[i] >= '0' && s1[i] <= '9')){
			if(s1[i] == s2[i]){
				for(int j = ++posj ;j < s2.size() && !tag ;j++){
					if(s2[j] == s1[i]){
						if(s1[i] >= 'A' && s1[i] <= 'N'){
							h = s1[i] - 'A' + 10;
						}
						else
							h = s1[i]-'0';
						tag = true;
					}
				}
			}
		}
	}




	for(int i = 0 ;i < s3.size() && i < s4.size();i++){
		if((s3[i] >= 'A' && s3[i] <= 'Z') || (s3[i] >= 'a' && s3[i] <= 'z')){
			if(s3[i] == s4[i]){
				m = i;
				break;
			}
		}
	}
			
	printf("%s %02d:%02d\n",&day[d],h,m);

	return 0;
}


<think>好的,用户提供的这段XML代码是关于Android中的FileProvider配置,但看起来存在一些问题。首先,我需要仔细检查代码结构是否正确。 用户提到他们遇到了XmlException错误,可能与FileProvider的配置有关。首先注意到在<provider>标签中,android:authorities属性的值是"com.dw.Dating.lua.fileProvider_invalid",这里可能存在问题。通常,FileProvider的authorities应该使用应用的包名加上.provider这样的后缀,比如"com.example.app.provider"。用户可能在这里使用了不正确的名称,导致系统无法识别。 接下来,检查<provider>标签的闭合方式。用户提供的代码中,<provider>标签在android:authorities属性后使用了闭合斜杠/>,但后面还有android:exported和android:grantUriPermissions属性,这些属性应该包含在<provider>标签内部。显然,这里存在标签未正确闭合的问题,导致XML解析错误。正确的做法是将所有属性放在同一个开始标签内,并确保标签正确闭合。 然后,查看<meta-data>部分。用户引用了@xml/file_paths_fanwei资源,需要确认该资源文件是否存在以及路径是否正确。如果file_paths_fanwei.xml文件不存在或配置错误,也会导致运行时错误。需要提醒用户检查该文件是否存在,并且路径是否正确。 此外,用户可能是在Unity导出Android项目时遇到问题,因此需要检查Unity中的Plugins/Android目录下的AndroidManifest.xml文件是否被正确配置。可能需要指导用户如何正确合并或替换主清单文件中的Provider配置,确保没有冲突或重复的authorities。 最后,考虑到用户之前的问题历史,他们可能对XML的语法和结构不够熟悉,容易出现标签闭合、属性位置等错误。因此,在回答时需要详细说明每个错误的具体位置和修复方法,并提供正确的代码示例,帮助他们彻底解决这些问题。</think>以下是修复 **FileProvider 配置错误** 的完整指南: --- ### 🔍 **错误定位** #### 1. **标签结构错误** ```xml <provider ... /> <!-- ❌ 错误:提前闭合 --> android:exported="false" <!-- ❌ 实际属性被孤立 --> android:grantUriPermissions="true"> ``` #### 2. **authorities 命名不规范** - `fileProvider_invalid` 不符合 FileProvider 的命名规则(建议使用 `.provider` 后缀) #### 3. **资源引用风险** - `@xml/file_paths_fanwei` 需确保文件实际存在且路径正确 --- ### ✅ **修复步骤** #### 1. **修正 `<provider>` 标签结构** ```xml <!-- ✅ 正确写法 --> <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.dw.Dating.lua.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths_fanwei" /> </provider> ``` #### 2. **规范 authorities 命名** - **推荐格式**:`包名.provider` - **示例**: ```xml android:authorities="com.dw.Dating.lua.provider" ``` #### 3. **验证 file_paths_fanwei.xml** 确保文件位于 `Assets/Plugins/Android/res/xml/file_paths_fanwei.xml`,内容示例: ```xml <?xml version="1.0" encoding="utf-8"?> <paths> <files-path name="my_files" path="." /> </paths> ``` --- ### 🧪 **完整修复示例** #### 修复前(错误代码): ```xml <!-- ❌ 错误:标签提前闭合 --> <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.dw.Dating.lua.fileProvider_invalid" /> android:exported="false" android:grantUriPermissions="true"> <meta-data ... /> </provider> ``` #### 修复后(合法代码): ```xml <!-- ✅ 修正后 --> <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.dw.Dating.lua.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths_fanwei" /> </provider> ``` --- ### 🛠️ **工具辅助检查** 1. **AndroidManifest 合并检查** Unity 导出项目时,确认主清单文件(`Temp/StagingArea/AndroidManifest.xml`)中的 `<provider>` 是否被正确合并。 2. **资源文件验证** 在 Unity 中启用 `Development Build` 模式,导出时会自动检查资源引用合法性。 --- ### 📌 **注意事项** - **包名一致性**:`android:authorities` 必须与应用包名(`manifest package`)匹配 - **兼容性**:若使用 AndroidX,需替换为 `androidx.core.content.FileProvider` - **权限声明**:确保在 `<manifest>` 根元素中已声明: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ``` --- ### ✅ **最终验证** 1. **Unity 重新导出** 删除 `Temp/` 和 `Library/` 后重新导出 Android 项目。 2. **运行时测试** 在设备上测试文件分享功能,确认无 `FileProviderNotFoundException`。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值