int函数

Leetcode 初级算法(14)--有效的字母异位词

蹲街弑〆低调 提交于 2020-03-11 00:49:54
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true 示例 2: 输入: s = “rat”, t = “car” 输出: false 说明: 你可以假设字符串只包含小写字母。 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? **分析:**关键是读懂题意,同样个数的字母,不同排列可以满足题意 解答: class Solution { public : bool isAnagram ( string s , string t ) { if ( s . length ( ) != t . length ( ) ) { return false ; } int sTable [ 26 ] = { 0 } ; int tTable [ 26 ] = { 0 } ; for ( int i = 0 ; i < s . length ( ) ; i ++ ) { sTable [ s [ i ] - 'a' ] ++ ; tTable [ t [ i ] - 'a' ] ++ ; } for ( int i = 0 ; i < 26 ; i ++ ) { //26: sTable.length if ( sTable [ i ]

C语言报错:error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token|

浪子不回头ぞ 提交于 2020-03-10 20:18:53
C语言写代码的时候碰到问题: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘ attribute ’ before ‘{’ token| 检查了很长时间什么都没发现,网上看大家出现这个错误有很多原因。希望以后不用再给自己补充。 报错原因: 语法错误,缺少了一些必要的符号。 报错代码: 这里是函数声明忘记了分号。 # include <stdio.h> # include <stdlib.h> # include <math.h> void money ( int year , int loan , float rate ) int main ( ) { int n , loan ; float rate ; printf ( "Input loan:" ) ; scanf ( "%d" , & loan ) ; printf ( "Input rate:" ) ; scanf ( "%f" , & rate ) ; for ( n = 5 ; n <= 30 ; n ++ ) money ( n , loan , rate ) ; return 0 ; } void money ( int year , int loan , float rate ) { int loan , month ; month = year * 12 ; money =

BZOJ 3027 [Ceoi2004]Sweet

孤街浪徒 提交于 2020-03-10 15:22:19
BZOJ 3027 [Ceoi2004]Sweet 生成函数 题解: 求出 <= b 的答案减去 <=a-1 的答案 先写出每个物品的生成函数 \((1+x+x^{2}+x^{3} \cdots)=\frac{1-x^{m_{i}+1}}{1-x}\) 然后把他们乘起来 \(\prod_{i=1}^{n}\frac{1-x^{m_{i}+1}}{1-x}\) \(=(1+x+x^{2}+x^{3}+\cdots)^{n}\prod_{i=1}^{n}(1-x^{m_{i}+1})\) 然后暴力展开后面的式子,最多有 \(2^{n}\) 项 对于前面的式子, \(x^{i}\) 这一项的系数由隔板法得到为 \(C_{i+n-1}^{n-1}\) 对于后面的 \(k \times 2^{y}\) 项,他对答案的贡献是 \(k \times (C_{n-1}^{n-1}+C_{1+n-1}^{n-1}+C_{2+n-1}^{n-1}+ \cdots +C_{a-y+n-1}^{n-1})\) 然后发现这其实是杨辉三角的一列,然后式子化成 \(=k \times C_{a-y+n}^{n}\) 模数不是质数所以可能没有逆元 \(C_{a-y+n}^{n}=\frac{(a-y+n)!}{n!(a-y)!}=\frac{(a-y+n)^{\underline{n}}}{n!}\)

hello 模板函数

醉酒当歌 提交于 2020-03-10 15:18:38
参考 https://www.cnblogs.com/zhangnianyong/p/11896309.html 如果一个地方即有左值引用,又有右值引用,而且功能函数内容相同,这样就要写两遍代码,问题变得更麻烦了,如:   #include <iostream>   void Func(const i &){     std::cout << i << std::endl;   }   void Func(int i&){     std::cout << i << std::endl;   }   void Func(int &&i){     std::cout << i << std::endl;   }   int main()   {     int a = 1;     const int b = a;     Func(b);//调用Func(const int &i);     Func(a);//调用Func(int &i);     Func(1);//调用Func(int && i);   }   为了解决这个问题,在模板函数上添加了一个完美转发语法,这样上面的几个函数可以合成一个函数, 如:   template <typename T>   void Func(T && t)   {     std::cout << t << std::endl;   }

C语言笔记(十七)——sizeof()、strlen()与str.length()

╄→尐↘猪︶ㄣ 提交于 2020-03-10 12:20:22
求数组长度: 1、sizeof()关键字: 根据sizeof ()关键字可以获得参数(数组、指针、 数据类型、对象或者函数 )在内存中 所占的字节数 ,所以数组所占总的字节数除以一个元素所占的字节数就是数组的长度。如下代码所示,数组 a 是 int 型的,每个元素占 4 字节,所以长度为 10 的数组在内存中所占的字节数就是 40。而总的字节数除以一个元素所占的字节数就是数组的长度,如下面这个程序: # include <stdio.h> int main() { int a[10] = {0, 3, 5, 6, 9}; int cnt = sizeof(a) / sizeof(int); printf("cnt = %d\n", cnt); return 0; } 运行结果: 注意1 :在 给出数组大小 后,sizeof 求 出的是 数组的总长度 ,而不是数组中存放的 有意义的数据 的个数 。 可以采用 不给数组大小 的方法来避免这个问题,比如下例中的数组b: # include <stdio.h> int main() { int a[10] = {0, 3, 5, 6, 9}; int b[] = {1,3,5,4}; int cnt = sizeof(a) / sizeof(int); int cnt1 = sizeof(b) / sizeof(int); printf(

static调用方法

做~自己de王妃 提交于 2020-03-10 09:44:21
1.static类成员 C++primer里面说过,static类成员不像普通的类数据成员,static类数据成员独立于一切类对象处在。static类数据成员是与类关联的, 但不与该类定义的对象有任何关系。即static不会像普通类数据成员一样每一个类对象都有一份,全部类对象是共享一个static类成员的。 例如A类对象修改了static成员为1,那么B对象对应的static类对象成员的值也会是1。 static 成员不占用类对象的空间 #include <iostream> using namespace std; class A{ public: A(){} ~A(){} private: static int x; //static int x=1;错误 static void m_data(int a) { x=a; } }; int A::x=1; int main() { A my_class; cout<<sizeof(my_class)<<endl; return 0; } View Code 注意:static类对象必须要在类外进行初始化 class Text { public: static int count; }; int Text::count=0;//用static成员变量必须要初始化 int main() { Text t1; cout<<t1

剑指offer【11-20】

隐身守侯 提交于 2020-03-10 09:32:40
11. 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解:如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。 举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,而前面的1保持不变,因此得到的结果是1011.我们发现减1的结果是把最右边的一个1开始的所有位都取反了。这个时候如果我们再把原来的整数和减去1之后的结果做与运算,从原来整数最右边一个1那一位开始所有位都会变成0。如1100&1011=1000.也就是说,把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0.那么一个整数的二进制有多少个1,就可以进行多少次这样的操作。 链接:https://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8?f=discussion 来源:牛客网 public class Solution { public int NumberOf1 ( int n ) { int count = 0 ; while ( n != 0 ) { count ++ ; n = n &

从函数层面看栈溢出

£可爱£侵袭症+ 提交于 2020-03-10 08:38:10
0X0001:函数调用 int func_b(int b1,int b2) { int var_b1,var_b2; var_b1 = b1+b2; var_b2 = b1-b2; return var_b1 * var_b2; } int func_a(int a1,int a2) { int var_a; var_a = fuc_b(a1+a2); return var_a; } int main(int argc,char** argv,char **envp) //32位参数在栈上,逆向压参,后将call main的下一条指令压栈(作为返回地址) { int var_main; //保存ebp后,移动esp,建立空间,后已ebp作为基址(新的),保存局部变量(local variable),形式参数如3,4(逆向压参) var_main = func_a(4,3); return 0; } main(call)->fuc_a(call)->fuc_b(形成连续增长式栈空间) int main() { welcome();//main->welcome()[welcome结束后栈清空] log();//之后再开辟log()栈空间[在log无参数的状态下两者同ebp] main->log() } //来自pwnable.kr(passcode)的思考 来源: https:/

c++语言的输入输出流库

℡╲_俬逩灬. 提交于 2020-03-10 04:57:39
1.c++语言标准输入输出流 <1>控制符的用法 #include <iostream> #include <iomanip> using namespace std; int main(){ int x=30,y=300,z=1024; cout<<"Decimal:"<<x<<" "<<y<<" "<<z<<endl;//按十进制输出 cout<<"Octal:"<<oct<<x<<" "<<y<<" "<<z<<endl;//按八进制输出 cout<<"Hexademical:"<<hex<<x<<" "<<y<<" "<<z<<endl;//按十六进制输出 cout<<setiosflags(ios::uppercase);//设置数值中字母大写输出 cout<<"Hexademical:"<<hex<<x<<" "<<y<<" "<<z<<endl;// cout<<resetiosflags(ios::uppercase);//设置数值中字母小写输出 cout<<"Hexademical:"<<hex<<x<<" "<<y<<" "<<z<<endl;// cout<<"Decimal:"<<dec<<x<<" "<<y<<" "<<z<<endl;//恢复按十进制输出 return 0; }   运行结果: #include <iostream> #include

计算分段函数[1]

删除回忆录丶 提交于 2020-03-09 19:43:26
本题目要求计算下列分段函数f(x)的值: 公式 输入格式: 输入在一行中给出实数x。 输出格式: 在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。 输入样例1: 10 输出样例1: f(10.0) = 0.1 输入样例2: 0 输出样例2: f(0.0) = 0.0 # include <stdio.h> # include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main ( int argc , char * argv [ ] ) { double x = 0 ; scanf ( "%lf" , & x ) ; if ( x == 0 ) { printf ( "f(%.1f) = %.1f" , x , 0.0 ) ; } else { printf ( "f(%.1f) = %.1f" , x , 1 / x ) ; } return 0 ; } 来源: CSDN 作者: majiamin123 链接: https://blog.csdn.net/majiamin123/article/details/104755830