1.
給定乙個字串
str,
返回str
的最長無重複字元子串的長度。舉例,
str=
"abcd"
,返回4
。str=
"aabcb"
最長無重複字元子串為
"abc",返回
3 #include
#include
#include
#include
#define max(a,b) ((a>b)?(a):(b))
#define min(a,b) ((a(a):(b))
int maxunique(char str);
char *getrandomstring(int len);
char *maxuniquestring(char * str);
int main(int argc,const
char * argv)
char *getrandomstring(int len)
return str;
}char *maxuniquestring(char * str)
int map[256];
for (int i =0; i <256; i ++)
int len = -1;
int pre = -1;
int cur = 0;
int end = -1;
for (int i =0 ; i !=strlen(str); i ++)
map[str[i]] = i;
//printf("pre = %d,cur = %d,len = %d,end = %d,map[str[%d]]=%d\n",pre,cur,len,end,i,map[str[i]]);
}char *desc = (char*)malloc(sizeof(char)*len);
strncpy(desc, str+(end - len + 1), len);
return desc;
}int maxunique(char str)
int map[256];
for (int i =0; i <256; i ++)
int len = 0;
int pre = -1;
for (int i =0; i!= strlen(str); i++)
return len;
}2.給定乙個陣列arr,陣列長度為len。求滿足0<=a<=b
int getmax1(int arr)
int res = 0;
for (int i =0; i < count -1; i ++)
int min = int32_max;
int res = 0;
for (int i =0; i< count; i++)
return res ;
}int *getrandomarray(int len)
return arr;
}
3.
給定兩個字串a和
b,其中只有小寫字元,已知
a的字典序小於b,
求在a和b
的字典序之間,有多少個字串。以長度較長的一方為準。
例如:a=「ab」
,b=「ac」
。他們的字典序挨著,所以返回0。
例如:a=「a」
,b=「cc」。b
的長度較長為
2,所以a和
b之間的字串包括:
」aa」..」az」,」b」,」ba」..」bz」,」c」,」ca」,」cb」
。一共56個
例如:a=「aa」,b=「c」。a
的長度較長為
2,所以所以a和
b之間的字串包括:
「ab」..」az」
,「b」
,「ba」..」bz」
。一共52個。
long gapnumber(char *str1,char *str2)
long len = max(str1_len, str2_len);
return (pos(str2, len) - pos(str1, len))-1;
}long pos(char *s,long len)
, , , , }; t
代表如下三角形: 2
3 46 5 7
4 1 8 3
找出從其頂部到底部的所有路徑中,路徑上的整數構成的最小和。
從頂部向底部移動時,每次可以移動到下一行中左邊或右邊的相鄰整數,比如如上的例子,
最小整數和為
11,即
2+3+5+1=11。
int minpath(int (*t)[4],int len)
}return t[0][0];
} int t[4] = ,,,
};printf("count =%d\n",minpath(t,4));
5.求最長的包含相同數目的
1的子陣列長度,要求索引位置一樣,
即a[i]
到a[j]
包含的1
的個數和
b[i]
到b[j]
包含的1
的個數一樣。
int maxlength(int arr1,int len1,int arr2,int len2)
for (int i = 0; i< len1; i ++)
char *map = (char*)malloc(sizeof(char)*len1);
map[0] = -1;
int len = 0;
int sum = 0;
for (int i = 0; i
Java中常用到的演算法題
1.遍歷出乙個資料夾下的所有檔案,並展示出層級關係,資料夾優先顯示,最後以一定格式寫入文字中 遞迴實現 遍歷出乙個資料夾下的所有檔案,並展示出層級關係,資料夾優先顯示,最後以一定格式寫入文字中 param args public static void main string args privat...
演算法 常見演算法題
演算法題 假如有100個不相同的數,比如從1到100,怎樣使用10次取出其中的10個不同的數字,要求每個數取出的概率一樣 一開始沒有說10次,所以我說,使用乙個random函式,以時間為種子來取,當取出乙個時,做標記,下次再取到這個數時,重新取一次 然後他就說了如果只能夠取10次怎麼辦?一開始我想到...
基礎演算法題
1.一百萬富翁遇到一陌生人,陌生人找他談乙個換錢的計畫,計畫如下 我每天給你十萬,而你每天只需要給我一分錢,第二天我仍然給你十萬元,你給我二分錢,第三天我仍然給你十萬,你給我四分錢.你每天給我的錢是前天的兩倍,直到乙個月 30天 百萬富翁很高興,欣然接受拉這個契約.請編寫乙個程式計算這乙個月中陌生人...