配列と文字列の間の柔軟な運用の10題
48937 ワード
作成関数repeat(char,n)は、繰り返しchar文字列n回を実現します.
例えば、repeat(「★」、6)は「★★★★」に戻ります.
逆に、私達の10進数34は2進数に等しいですか?32+2 1100010、例えば15はいくらですか?8+4+2+11111
作成関数rev(char)は、文字列charを逆さまにしてrev(「spring」)を「gnirps」に戻すことを実現する.
文字列「i come from beijing」を逆さまにして、コンソールから出力された「beijing from come i」の文を直接プログラムに書いて、ユーザーの入力が必要ではありません.
書き込み関数rightchange(char,n)は、文字列charを右にシフトします.例えば、right change(「abcdefg」、2)は「fgabcde」に戻ります.
答え:
例えば、repeat(「★」、6)は「★★★★」に戻ります.
function rev(char,n){
var arr=""
for(var i=0;i<n;i++){
arr=arr.concat(char)
}//
console.log(arr)
}
//方法二分法、もう持っています.★五角星が4つ現れたら、★を倍にしてもいいです.ですから、どの数字も1、2、4、8、16、32…で構成されています.二進法の事バイナリは、0、1の2つの数字だけで、ビット権の概念:110101 1つの1+0つの2+1つの4+0つの8+1つの16=21逆に、私達の10進数34は2進数に等しいですか?32+2 1100010、例えば15はいくらですか?8+4+2+11111
//
function repeat(char,n){
var arr=""
for(var i=0;i<n;i++){
while(true){
if(n%2==1){
arr+=char
}
if(n==1){
break
}
n=parseInt(n/2)
char=char+char
}
}
return arr
}
2番はコンソールで図形を出力します. *
***
*****
*******
*********
function repeat(char,n){
var arr=""
for(var i=0;i<n;i++){
while(true){
if(n%2==1){
arr+=char
}
if(n==1){
break
}
n=parseInt(n/2)
char=char+char
}
}
return arr
}
var a,b,str
for(var i=1;i<6;i++){
a= repeat("*",i*2-1)
b=repeat(" ",5-i)
str= b+a
console.log(str)
}
3番です作成関数rev(char)は、文字列charを逆さまにしてrev(「spring」)を「gnirps」に戻すことを実現する.
function rev(char){
var arr=char.split("")
arr.reverse()
arr.join()
console.log(arr)
}
function rev(char,n){
var str=""
for(var i=char.length-1;i<0;i--){
str+=char.charAt[i]
char=str
}
return str
}
4番です文字列「i come from beijing」を逆さまにして、コンソールから出力された「beijing from come i」の文を直接プログラムに書いて、ユーザーの入力が必要ではありません.
var str="i come from beijing"
console.log(typeof(str))
var arr= str.split(" ");
console.log(arr)
arr1=arr.reverse()
console.log(arr1)
str1=arr1.join(" ")
console.log(str1)
5番です書き込み関数rightchange(char,n)は、文字列charを右にシフトします.例えば、right change(「abcdefg」、2)は「fgabcde」に戻ります.
function rightchange(char,n){
var str = char;
var arr=""
for(var i=0;i<n;i++){
arr=str.slice(-1)+str.slice(0,str.length-1)
str=arr;
}
console.log(arr)
}
function rightchange(char,n){
var arr = char.split("");
for(var i=0;i<n;i++){
arr.unshift(arr.pop())
}
// console.log(arr)
return arr.join()
}
function rightchange(char,n){
n=n%char.length;
if(n==0) return char
var arr= char.substr(-n)+char.substr(0,char.length-n)
return arr
}
6番の作成関数maxr(char)は文字列charの中で一番長い連続した反復文字を返します.例えば、maxr(「mmmiijjjjjjjjjkkssptr」)は「kkkkk」に戻ります.var a=0
var b=0
var maxLength=0;
var maxletter=""
function maxr(char){
while(a!=char.length-1){
if(char.charAt(a)==char.charAt(b)){
b++;
console.log(b)
}else{
if(b-a>maxLength){
maxLength=b-a;
console.log(maxLength)
maxletter=char.charAt(a)
}
a++;
// console.log(a)
b=a+1
}
}
console.log(maxletter)
}
7番の学生が10人いますが、成績は群の中にあります.平均成績以上の人数を統計してください.成績は直接的に配列形式でプログラムに書いてあります.ユーザ入力は必要ありません.var sum=0;
for(var i=0;i<10;i++){
var arr=[34,56,23,24,56,67,8,54,54,45]
sum+=arr[i]
}
var average=sum/10
console.log(average)
for(var i=0;i<10;i++){
var arr=[34,56,23,24,56,67,8,54,54,45]
if(average<=arr[i]){
console.log(arr[i])
}
}
問題8は10人の学生の成績があります.一番高い点数と最低点を統計してください.そして一番高い点数と最低点の学生の下の標的をコントロール台に出力します. for(var i=0;i<10;i++){
var arr=[34,56,23,24,56,67,8,54,54,45]
arr.sort(function(a,b){
if(a>b){
return 1
}else if(a<b){
return -1
}else if(a==b){
return 0
}
})
}
console.log(arr[0],arr[9])
var arr=[34,56,23,24,56,67,8,54,54,45]
var max=0;
var min=arr[0];
var maxIndex=0;
var minIndex=0;
for(var i=0;i<arr.length;i++){
if(arr[i]>max){
max=arr[i]
maxIndex=i
}else if(min>arr[i]){
min=arr[i]
minIndex=i
}
}
console.log(max,min)
console.log(maxIndex,minIndex)
第9は株の定理を書きます:直角三角形の中で、2つの直角の辺の平方和、斜辺の平方に等しいです.三辺を探している長さは全部100以下で、三辺の長さは全部整数の可能性があります.コンソールで出力します.//
for(var x=1;x<100;x++){
for(var y=1;y<100;y++){
for(var z=1;z<100;z++){
if(x*x+y*y==z*z){
console.log(x,y,z)
}
}
}
}
// A B
この問題は非常に難しいです.階段を飛び降りないでください.関数maxsame(char 1,char 2)は文字列char 1とchar 2の最大の同じ部分列に戻ります.例えば、maxsame(abcdefghijklmn)、mndefghlm)は「defgh」に戻ります. /* 1: str2 , str1
, 。 js indexOf()
。*/
function check(str1,str2){
var s;
var maxlength = 0; //
var maxchar = ""; //
// str2
for(var start = 0 ; start <= str2.length ; start++){
for(var end = start + 1; end <= str2.length; end++){
// s
s = str2.substring(start,end);
// s str1
if(str1.indexOf(s) != -1 && s.length > maxlength){
// , s
maxlength = s.length;
//
maxchar = s;
}
}
}
return maxchar;
}
// 2: 4 , , js indexOf 。
//c , indexOf ,
//c , 4 。
function check(str1,str2){
//
var a = 0;
var b = 1;
var c = 0;
var d = 1;
var maxlength = 0;
var maxchar = "";
while(true){
if(str1.charAt(a) != str2.charAt(c)){
// a、c , c、d
c++;
d++;
}else{
//a、c
while(true){
if(str1.charAt(b) == str2.charAt(d)){
b++;
d++;
if(b - a > maxlength){
maxlength = b - a;
maxchar = str1.substring(a,b);
}
}else{
c = 0;
d = 1;
a++;
b = a + 1;
break;
}
//
if(b >= str1.length || d >= str2.length){
// c、d , c、d ,a
break;
}
}
}
// ,c、d , cd
if(c >= str2.length || d >= str2.length){
// c、d , c、d ,a
c = 0;
d = 1;
a++;
b = a + 1;
}
//
if(a >= str1.length){
break;
}
}
return maxchar;
}
11番は「i love javascript cai gai」の各単語の最初の文字を大文字にします.答え:
var arr = "i love javascript cai guai".split(" ");
for(var i = 0 ; i < arr.length ; i++){
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substr(1);
}
arr.join(" ");