Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,40 @@
|
|||
using System;
|
||||
|
||||
namespace LongestCommonSubstring
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine(lcs("thisisatest", "testing123testing"));
|
||||
Console.ReadKey(true);
|
||||
}
|
||||
|
||||
public static string lcs(string a, string b)
|
||||
{
|
||||
var lengths = new int[a.Length, b.Length];
|
||||
int greatestLength = 0;
|
||||
string output = "";
|
||||
for (int i = 0; i < a.Length; i++)
|
||||
{
|
||||
for (int j = 0; j < b.Length; j++)
|
||||
{
|
||||
if (a[i] == b[j])
|
||||
{
|
||||
lengths[i, j] = i == 0 || j == 0 ? 1 : lengths[i - 1, j - 1] + 1;
|
||||
if (lengths[i, j] > greatestLength)
|
||||
{
|
||||
greatestLength = lengths[i, j];
|
||||
output = a.Substring(i - greatestLength + 1, greatestLength);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lengths[i, j] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
//C# program tests the LCSUBSTR (Longest Common Substring) subroutine.
|
||||
using System;
|
||||
namespace LongestCommonSubstring
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
string a = args.Length >= 1 ? args[0] : ""; /*get two arguments (strings). */
|
||||
string b = args.Length == 2 ? args[1] : "";
|
||||
if (a == "") a = "thisisatest"; /*use this string for a default. */
|
||||
if (b == "") b = "testing123testing"; /* " " " " " " */
|
||||
Console.WriteLine("string A = {0}", a); /*echo string A to screen. */
|
||||
Console.WriteLine("string B = {0}", b); /*echo string B to screen. */
|
||||
Console.WriteLine("LCsubstr = {0}", LCsubstr(a, b)); /*tell Longest Common Substring. */
|
||||
Console.ReadKey(true);
|
||||
} /*stick a fork in it, we're done.*/
|
||||
|
||||
/*─────────────────────────────────LCSUBSTR subroutine─────────────────────────────────*/
|
||||
public static string LCsubstr(string x, string y) /*Longest Common Substring. */
|
||||
{
|
||||
string output = "";
|
||||
int lenx = x.Length; /*shortcut for using the X length*/
|
||||
for (int j = 0; j < lenx; j++) /*step through start points in X.*/
|
||||
{
|
||||
for (int k = lenx - j; k > -1; k--) /*step through string lengths. */
|
||||
{
|
||||
string common = x.Substring(j, k); /*extract a common substring. */
|
||||
if (y.IndexOf(common) > -1 && common.Length > output.Length) output = common; /*longest?*/
|
||||
} /*k*/
|
||||
} /*j*/
|
||||
return output; /*$ is "" if no common string. */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
//C# program tests the LCS (Longest Common Substring) subroutine.
|
||||
using System;
|
||||
namespace LongestCommonSubstring
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
string a = args.Length >= 1 ? args[0] : ""; /*get two arguments (strings). */
|
||||
string b = args.Length == 2 ? args[1] : "";
|
||||
if (a == "") a = "thisisatest"; /*use this string for a default. */
|
||||
if (b == "") b = "testing123testing"; /* " " " " " " */
|
||||
Console.WriteLine("string A = {0}", a); /*echo string A to screen. */
|
||||
Console.WriteLine("string B = {0}", b); /*echo string B to screen. */
|
||||
Console.WriteLine("LCS = {0}", lcs(a, b)); /*tell Longest Common Substring. */
|
||||
Console.ReadKey(true);
|
||||
} /*stick a fork in it, we're done.*/
|
||||
|
||||
/*─────────────────────────────────LCS subroutine─────────────────────────────────*/
|
||||
private static string lcs(string a, string b)
|
||||
{
|
||||
if(b.Length<a.Length){ string t=a; a=b; b=t; }
|
||||
for (int n = a.Length; n > 0; n--)
|
||||
{
|
||||
for (int m = a.Length-n; m <= a.Length-n; m++)
|
||||
{
|
||||
string s=a.Substring(m,n);
|
||||
if(b.Contains(s)) return(s);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue