360的编程题,字符置换,怎么做?求大神帮忙

如题#360公司#
全部评论
haha
点赞 回复 分享
发布于 2016-03-29 20:22
http://www.nowcoder.com/discuss/4240?type=0&order=0&pos=20&page=1
点赞 回复 分享
发布于 2016-03-29 20:22
import java.util.*; public class Main{ //函数f(s) public static int f(char[] s) { int i=0; int count=0; while(i<s.length-1) { if(s[i]=='.'&&s[i]==s[i+1]) { count++; } i++; } return count; } //替换字符 public static void replaceChar() { Scanner sc=new Scanner(System.in); int len,count=0; int pos,result; char c; char[] s={}; while(sc.hasNext()) { //读取长度和替换组数 len=sc.nextInt(); count=sc.nextInt(); //System.out.println(len+count); s=sc.next().trim().toCharArray(); if(s.length>len) { System.out.println("out of range!"); break; } for(int j=0;j<count;j++) { pos=sc.nextInt(); c=sc.next().toString().trim().toCharArray()[0]; s[pos]=c; result=f(s); System.out.println(result); } continue; } sc.close(); } public static void main(String[] args) { replaceChar(); } } 水平有限,可以参考一下,欢迎指正!
点赞 回复 分享
发布于 2016-03-29 21:45
#include <iostream> using namespace std; void f(string &s) { int n = 0; for(auto i = s.begin(); i != s.end() - 1; ++i) { if(*i == '.' && *(i + 1) == '.') ++n; } cout << n << endl; } int main() { int n , m ; int x; char c; while(cin >> n >> m) { string s; for(int i = 0; i < n; ++i) { cin >> c; s.push_back(c); } for(int i = 0; i < m; ++i) { cin >> x >> c; s[x - 1] = c; cout << s << endl; f(s); } } return 0; } 有问题的话相互探讨。0-0
点赞 回复 分享
发布于 2016-03-29 22:25

相关推荐

不愿透露姓名的神秘牛友
11-20 19:57
已编辑
某大厂 golang工程师 23.0k*16.0, 2k房补,年终大概率能拿到
点赞 评论 收藏
分享
冷艳的小师弟在看机会:jd测评乱点直接被挂了,哭死~
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务