最好的解决方案是:
系统在提交答案之后将答案格式化好,按先后顺序,去重排序存好!
比较时,直接比较,搞定,空间时间复杂度都是O(1);
如果:用户答案,标准备答案都是无序时。如何高效比对?
/// <summary>
/// 较对答案
/// </summary>
/// <param name="answer">考生答案</param>
/// <param name="correct">标准答案</param>
/// <returns></returns>
public static bool Test( string answer, string correct )
{
if ( answer == null )
return false;
else if ( answer.Length != correct.Length )
return false;
else
{
int a = 0, b = 0;
for ( int i = 0; i < answer.Length; i++ )
{
a |= 1 << ( answer[i] - 'A' ) % ( 'a' - 'A' );
b |= 1 << ( correct[i] - 'A' ) % ( 'a' - 'A' );
}
return a == b;
}
}
算法,你懂的......

本文介绍了一种用于比较用户答案与标准答案的高效算法。该算法适用于答案为无序字符的情况,通过对答案进行位运算处理来实现快速精确匹配,确保时间和空间复杂度均为O(1)。
2万+

被折叠的 条评论
为什么被折叠?



